diff --git a/miniboost/alloca.h b/miniboost/alloca.h index c195adc9..ff859013 100644 --- a/miniboost/alloca.h +++ b/miniboost/alloca.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/assert.h b/miniboost/assert.h index 5468c16c..20fe3200 100644 --- a/miniboost/assert.h +++ b/miniboost/assert.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/byteswap.h b/miniboost/bits/byteswap.h index 23974e90..83731c9e 100644 --- a/miniboost/bits/byteswap.h +++ b/miniboost/bits/byteswap.h @@ -1,5 +1,5 @@ /* Macros and inline functions to swap the order of bytes in integer values. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/confname.h b/miniboost/bits/confname.h index 59d31721..1476f614 100644 --- a/miniboost/bits/confname.h +++ b/miniboost/bits/confname.h @@ -1,5 +1,5 @@ /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/cpu-set.h b/miniboost/bits/cpu-set.h index c5e919e8..b0bfe796 100644 --- a/miniboost/bits/cpu-set.h +++ b/miniboost/bits/cpu-set.h @@ -1,6 +1,6 @@ /* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993 scheduling interface. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/environments.h b/miniboost/bits/environments.h index 478c1cb7..d64486c1 100644 --- a/miniboost/bits/environments.h +++ b/miniboost/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2018 Free Software Foundation, Inc. +/* Copyright (C) 1999-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/errno.h b/miniboost/bits/errno.h index e0f7f0b6..ee8c3698 100644 --- a/miniboost/bits/errno.h +++ b/miniboost/bits/errno.h @@ -1,5 +1,5 @@ /* Error constants. Linux specific version. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/floatn-common.h b/miniboost/bits/floatn-common.h index 1d8958a1..980bfdaf 100644 --- a/miniboost/bits/floatn-common.h +++ b/miniboost/bits/floatn-common.h @@ -1,6 +1,6 @@ /* Macros to control TS 18661-3 glibc features where the same definitions are appropriate for all platforms. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/floatn.h b/miniboost/bits/floatn.h index 49c75f26..d157c926 100644 --- a/miniboost/bits/floatn.h +++ b/miniboost/bits/floatn.h @@ -1,5 +1,5 @@ /* Macros to control TS 18661-3 glibc features on x86. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/getopt_core.h b/miniboost/bits/getopt_core.h index a13838fa..5c983f33 100644 --- a/miniboost/bits/getopt_core.h +++ b/miniboost/bits/getopt_core.h @@ -1,5 +1,5 @@ /* Declarations for getopt (basic, portable features only). - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. diff --git a/miniboost/bits/getopt_posix.h b/miniboost/bits/getopt_posix.h index 1f90e84c..0fb81fab 100644 --- a/miniboost/bits/getopt_posix.h +++ b/miniboost/bits/getopt_posix.h @@ -1,5 +1,5 @@ /* Declarations for getopt (POSIX compatibility shim). - Copyright (C) 1989-2018 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. Unlike the bulk of the getopt implementation, this file is NOT part of gnulib. diff --git a/miniboost/bits/libc-header-start.h b/miniboost/bits/libc-header-start.h index b4a429b8..72efab29 100644 --- a/miniboost/bits/libc-header-start.h +++ b/miniboost/bits/libc-header-start.h @@ -1,5 +1,5 @@ /* Handle feature test macros at the start of a header. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/local_lim.h b/miniboost/bits/local_lim.h index 2d82ada4..d3a2a17a 100644 --- a/miniboost/bits/local_lim.h +++ b/miniboost/bits/local_lim.h @@ -1,5 +1,5 @@ /* Minimum guaranteed maximum values for system limits. Linux version. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/long-double.h b/miniboost/bits/long-double.h index 28488e0b..8d60650e 100644 --- a/miniboost/bits/long-double.h +++ b/miniboost/bits/long-double.h @@ -1,5 +1,5 @@ /* Properties of long double type. ldbl-96 version. - Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/param.h b/miniboost/bits/param.h index 03486c16..53c0f9f1 100644 --- a/miniboost/bits/param.h +++ b/miniboost/bits/param.h @@ -1,5 +1,5 @@ /* Old-style Unix parameters and limits. Linux version. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/posix1_lim.h b/miniboost/bits/posix1_lim.h index 18ac47fb..0b1cb6fc 100644 --- a/miniboost/bits/posix1_lim.h +++ b/miniboost/bits/posix1_lim.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/posix2_lim.h b/miniboost/bits/posix2_lim.h index c460ea26..01a96d9f 100644 --- a/miniboost/bits/posix2_lim.h +++ b/miniboost/bits/posix2_lim.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/posix_opt.h b/miniboost/bits/posix_opt.h index 2339d4a1..ca020d3c 100644 --- a/miniboost/bits/posix_opt.h +++ b/miniboost/bits/posix_opt.h @@ -1,5 +1,5 @@ /* Define POSIX options for Linux. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,7 +25,10 @@ /* Processes have a saved set-user-ID and a saved set-group-ID. */ #define _POSIX_SAVED_IDS 1 -/* Priority scheduling is supported. */ +/* Priority scheduling is not supported with the correct semantics, + but GNU/Linux applications expect that the corresponding interfaces + are available, even though the semantics do not meet the POSIX + requirements. See glibc bug 14829. */ #define _POSIX_PRIORITY_SCHEDULING 200809L /* Synchronizing file data is supported. */ diff --git a/miniboost/bits/pthreadtypes-arch.h b/miniboost/bits/pthreadtypes-arch.h index 290f2f46..4eac75bc 100644 --- a/miniboost/bits/pthreadtypes-arch.h +++ b/miniboost/bits/pthreadtypes-arch.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/pthreadtypes.h b/miniboost/bits/pthreadtypes.h index 70ce0a04..1b2a1740 100644 --- a/miniboost/bits/pthreadtypes.h +++ b/miniboost/bits/pthreadtypes.h @@ -1,5 +1,5 @@ /* Declaration of common pthread types for all architectures. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/sched.h b/miniboost/bits/sched.h index 34f27a7d..828b8786 100644 --- a/miniboost/bits/sched.h +++ b/miniboost/bits/sched.h @@ -1,6 +1,6 @@ /* Definitions of constants and data structure for POSIX 1003.1b-1993 scheduling interface. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -86,6 +86,9 @@ extern int unshare (int __flags) __THROW; /* Get index of currently used CPU. */ extern int sched_getcpu (void) __THROW; +/* Get currently used CPU and NUMA node. */ +extern int getcpu (unsigned int *, unsigned int *) __THROW; + /* Switch process to namespace of type NSTYPE indicated by FD. */ extern int setns (int __fd, int __nstype) __THROW; #endif diff --git a/miniboost/bits/select.h b/miniboost/bits/select.h index 2c0a2b5e..1da802af 100644 --- a/miniboost/bits/select.h +++ b/miniboost/bits/select.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/select2.h b/miniboost/bits/select2.h index 71941489..dffdd054 100644 --- a/miniboost/bits/select2.h +++ b/miniboost/bits/select2.h @@ -1,5 +1,5 @@ /* Checking macros for select functions. - Copyright (C) 2011-2018 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/setjmp.h b/miniboost/bits/setjmp.h index e0c22ac7..bb0af2aa 100644 --- a/miniboost/bits/setjmp.h +++ b/miniboost/bits/setjmp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/sigaction.h b/miniboost/bits/sigaction.h index a4225c87..a9beac87 100644 --- a/miniboost/bits/sigaction.h +++ b/miniboost/bits/sigaction.h @@ -1,5 +1,5 @@ /* The proper definitions for Linux's sigaction. - Copyright (C) 1993-2018 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/sigcontext.h b/miniboost/bits/sigcontext.h index 5f19c488..75cded92 100644 --- a/miniboost/bits/sigcontext.h +++ b/miniboost/bits/sigcontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -26,7 +26,7 @@ #define FP_XSTATE_MAGIC1 0x46505853U #define FP_XSTATE_MAGIC2 0x46505845U -#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) +#define FP_XSTATE_MAGIC2_SIZE sizeof (FP_XSTATE_MAGIC2) struct _fpx_sw_bytes { diff --git a/miniboost/bits/sigevent-consts.h b/miniboost/bits/sigevent-consts.h index 897b7d26..e8766d82 100644 --- a/miniboost/bits/sigevent-consts.h +++ b/miniboost/bits/sigevent-consts.h @@ -1,5 +1,5 @@ /* sigevent constants. Linux version. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/siginfo-consts.h b/miniboost/bits/siginfo-consts.h index 193bd9c4..f8de9574 100644 --- a/miniboost/bits/siginfo-consts.h +++ b/miniboost/bits/siginfo-consts.h @@ -1,5 +1,5 @@ /* siginfo constants. Linux version. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -35,7 +35,9 @@ enum { SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */ - SI_TKILL = -6, /* Sent by tkill. */ + SI_DETHREAD = -7, /* Sent by execve killing subsidiary + threads. */ + SI_TKILL, /* Sent by tkill. */ SI_SIGIO, /* Sent by queued SIGIO. */ #if __SI_ASYNCIO_AFTER_SIGIO SI_ASYNCIO, /* Sent by AIO completion. */ @@ -51,6 +53,7 @@ enum SI_KERNEL = 0x80 /* Send by kernel. */ #define SI_ASYNCNL SI_ASYNCNL +#define SI_DETHREAD SI_DETHREAD #define SI_TKILL SI_TKILL #define SI_SIGIO SI_SIGIO #define SI_ASYNCIO SI_ASYNCIO @@ -81,8 +84,10 @@ enum # define ILL_PRVREG ILL_PRVREG ILL_COPROC, /* Coprocessor error. */ # define ILL_COPROC ILL_COPROC - ILL_BADSTK /* Internal stack error. */ + ILL_BADSTK, /* Internal stack error. */ # define ILL_BADSTK ILL_BADSTK + ILL_BADIADDR /* Unimplemented instruction address. */ +# define ILL_BADIADDR ILL_BADIADDR }; /* `si_code' values for SIGFPE signal. */ @@ -102,8 +107,12 @@ enum # define FPE_FLTRES FPE_FLTRES FPE_FLTINV, /* Floating point invalid operation. */ # define FPE_FLTINV FPE_FLTINV - FPE_FLTSUB /* Subscript out of range. */ + FPE_FLTSUB, /* Subscript out of range. */ # define FPE_FLTSUB FPE_FLTSUB + FPE_FLTUNK = 14, /* Undiagnosed floating-point exception. */ +# define FPE_FLTUNK FPE_FLTUNK + FPE_CONDTRAP /* Trap on condition. */ +# define FPE_CONDTRAP FPE_CONDTRAP }; /* `si_code' values for SIGSEGV signal. */ @@ -115,8 +124,14 @@ enum # define SEGV_ACCERR SEGV_ACCERR SEGV_BNDERR, /* Bounds checking failure. */ # define SEGV_BNDERR SEGV_BNDERR - SEGV_PKUERR /* Protection key checking failure. */ + SEGV_PKUERR, /* Protection key checking failure. */ # define SEGV_PKUERR SEGV_PKUERR + SEGV_ACCADI, /* ADI not enabled for mapped object. */ +# define SEGV_ACCADI SEGV_ACCADI + SEGV_ADIDERR, /* Disrupting MCD error. */ +# define SEGV_ADIDERR SEGV_ADIDERR + SEGV_ADIPERR /* Precise MCD exception. */ +# define SEGV_ADIPERR SEGV_ADIPERR }; /* `si_code' values for SIGBUS signal. */ @@ -141,8 +156,14 @@ enum { TRAP_BRKPT = 1, /* Process breakpoint. */ # define TRAP_BRKPT TRAP_BRKPT - TRAP_TRACE /* Process trace trap. */ + TRAP_TRACE, /* Process trace trap. */ # define TRAP_TRACE TRAP_TRACE + TRAP_BRANCH, /* Process taken branch trap. */ +# define TRAP_BRANCH TRAP_BRANCH + TRAP_HWBKPT, /* Hardware breakpoint/watchpoint. */ +# define TRAP_HWBKPT TRAP_HWBKPT + TRAP_UNK /* Undiagnosed trap. */ +# define TRAP_UNK TRAP_UNK }; # endif diff --git a/miniboost/bits/signal_ext.h b/miniboost/bits/signal_ext.h new file mode 100644 index 00000000..c07b869f --- /dev/null +++ b/miniboost/bits/signal_ext.h @@ -0,0 +1,31 @@ +/* System-specific extensions of , Linux version. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _SIGNAL_H +# error "Never include directly; use instead." +#endif + +#ifdef __USE_GNU + +/* Send SIGNAL to the thread TID in the thread group (process) + identified by TGID. This function behaves like kill, but also + fails with ESRCH if the specified TID does not belong to the + specified thread group. */ +extern int tgkill (__pid_t __tgid, __pid_t __tid, int __signal); + +#endif /* __USE_GNU */ diff --git a/miniboost/bits/signum-generic.h b/miniboost/bits/signum-generic.h index 8f1044a1..6fbbf20a 100644 --- a/miniboost/bits/signum-generic.h +++ b/miniboost/bits/signum-generic.h @@ -1,5 +1,5 @@ /* Signal number constants. Generic template. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/signum.h b/miniboost/bits/signum.h index 0f70ce50..25b0d2a6 100644 --- a/miniboost/bits/signum.h +++ b/miniboost/bits/signum.h @@ -1,5 +1,5 @@ /* Signal number definitions. Linux version. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/sigstack.h b/miniboost/bits/sigstack.h index c9e7ddfc..e3a37f64 100644 --- a/miniboost/bits/sigstack.h +++ b/miniboost/bits/sigstack.h @@ -1,5 +1,5 @@ /* sigstack, sigaltstack definitions. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/sigthread.h b/miniboost/bits/sigthread.h index b1fb6150..b106939c 100644 --- a/miniboost/bits/sigthread.h +++ b/miniboost/bits/sigthread.h @@ -1,5 +1,5 @@ /* Signal handling function for threaded programs. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/ss_flags.h b/miniboost/bits/ss_flags.h index f7fb9d02..9a54cf81 100644 --- a/miniboost/bits/ss_flags.h +++ b/miniboost/bits/ss_flags.h @@ -1,5 +1,5 @@ /* ss_flags values for stack_t. Linux version. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdint-intn.h b/miniboost/bits/stdint-intn.h index de1ffcce..fc7b43fc 100644 --- a/miniboost/bits/stdint-intn.h +++ b/miniboost/bits/stdint-intn.h @@ -1,5 +1,5 @@ /* Define intN_t types. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdint-uintn.h b/miniboost/bits/stdint-uintn.h index 350b65b2..e054f0b9 100644 --- a/miniboost/bits/stdint-uintn.h +++ b/miniboost/bits/stdint-uintn.h @@ -1,5 +1,5 @@ /* Define uintN_t types. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdlib-bsearch.h b/miniboost/bits/stdlib-bsearch.h index d83239a3..60bb70c2 100644 --- a/miniboost/bits/stdlib-bsearch.h +++ b/miniboost/bits/stdlib-bsearch.h @@ -1,5 +1,5 @@ /* Perform binary search - inline version. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdlib-float.h b/miniboost/bits/stdlib-float.h index cb0c35b4..b6f4877c 100644 --- a/miniboost/bits/stdlib-float.h +++ b/miniboost/bits/stdlib-float.h @@ -1,5 +1,5 @@ /* Floating-point inline functions for stdlib.h. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdlib-ldbl.h b/miniboost/bits/stdlib-ldbl.h index f7ae1013..ca460fa3 100644 --- a/miniboost/bits/stdlib-ldbl.h +++ b/miniboost/bits/stdlib-ldbl.h @@ -1,5 +1,5 @@ /* -mlong-double-64 compatibility mode for functions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/stdlib.h b/miniboost/bits/stdlib.h index 53c379b9..38eb5465 100644 --- a/miniboost/bits/stdlib.h +++ b/miniboost/bits/stdlib.h @@ -1,5 +1,5 @@ /* Checking macros for stdlib functions. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/string_fortified.h b/miniboost/bits/string_fortified.h index a07ab0db..afeaba53 100644 --- a/miniboost/bits/string_fortified.h +++ b/miniboost/bits/string_fortified.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2018 Free Software Foundation, Inc. +/* Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/strings_fortified.h b/miniboost/bits/strings_fortified.h index d9b28045..f8088a64 100644 --- a/miniboost/bits/strings_fortified.h +++ b/miniboost/bits/strings_fortified.h @@ -1,5 +1,5 @@ /* Fortify macros for strings.h functions. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/thread-shared-types.h b/miniboost/bits/thread-shared-types.h index 1e2092a0..aec0a121 100644 --- a/miniboost/bits/thread-shared-types.h +++ b/miniboost/bits/thread-shared-types.h @@ -1,5 +1,5 @@ /* Common threading primitives definitions for both POSIX and C11. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -124,7 +124,27 @@ struct __pthread_mutex_s unsigned int __nusers; #endif /* KIND must stay at this position in the structure to maintain - binary compatibility with static initializers. */ + binary compatibility with static initializers. + + Concurrency notes: + The __kind of a mutex is initialized either by the static + PTHREAD_MUTEX_INITIALIZER or by a call to pthread_mutex_init. + + After a mutex has been initialized, the __kind of a mutex is usually not + changed. BUT it can be set to -1 in pthread_mutex_destroy or elision can + be enabled. This is done concurrently in the pthread_mutex_*lock functions + by using the macro FORCE_ELISION. This macro is only defined for + architectures which supports lock elision. + + For elision, there are the flags PTHREAD_MUTEX_ELISION_NP and + PTHREAD_MUTEX_NO_ELISION_NP which can be set in addition to the already set + type of a mutex. + Before a mutex is initialized, only PTHREAD_MUTEX_NO_ELISION_NP can be set + with pthread_mutexattr_settype. + After a mutex has been initialized, the functions pthread_mutex_*lock can + enable elision - if the mutex-type and the machine supports it - by setting + the flag PTHREAD_MUTEX_ELISION_NP. This is done concurrently. Afterwards + the lock / unlock functions are using specific elision code-paths. */ int __kind; __PTHREAD_COMPAT_PADDING_MID #if __PTHREAD_MUTEX_NUSERS_AFTER_KIND diff --git a/miniboost/bits/time.h b/miniboost/bits/time.h index 3df0dfd3..a6f6cc99 100644 --- a/miniboost/bits/time.h +++ b/miniboost/bits/time.h @@ -1,5 +1,5 @@ /* System-dependent timing definitions. Linux version. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/time64.h b/miniboost/bits/time64.h new file mode 100644 index 00000000..c0f8a24d --- /dev/null +++ b/miniboost/bits/time64.h @@ -0,0 +1,36 @@ +/* bits/time64.h -- underlying types for __time64_t. Generic version. + Copyright (C) 2018-2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _BITS_TYPES_H +# error "Never include directly; use instead." +#endif + +#ifndef _BITS_TIME64_H +#define _BITS_TIME64_H 1 + +/* Define __TIME64_T_TYPE so that it is always a 64-bit type. */ + +#if __TIMESIZE == 64 +/* If we already have 64-bit time type then use it. */ +# define __TIME64_T_TYPE __TIME_T_TYPE +#else +/* Define a 64-bit time type alongsize the 32-bit one. */ +# define __TIME64_T_TYPE __SQUAD_TYPE +#endif + +#endif /* bits/time64.h */ diff --git a/miniboost/bits/timesize.h b/miniboost/bits/timesize.h new file mode 100644 index 00000000..81ca67f9 --- /dev/null +++ b/miniboost/bits/timesize.h @@ -0,0 +1,25 @@ +/* Bit size of the time_t type at glibc build time, x86-64 and x32 case. + Copyright (C) 2018-2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#if defined __x86_64__ && defined __ILP32__ +/* For x32, time is 64-bit even though word size is 32-bit. */ +# define __TIMESIZE 64 +#else +/* For others, time size is word size. */ +# define __TIMESIZE __WORDSIZE +#endif diff --git a/miniboost/bits/timex.h b/miniboost/bits/timex.h index 1dbcc0b5..bb272e8b 100644 --- a/miniboost/bits/timex.h +++ b/miniboost/bits/timex.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -104,7 +104,7 @@ struct timex #define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */ /* Read-only bits */ -#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \ - STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) +#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER \ + | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK) #endif /* bits/timex.h */ diff --git a/miniboost/bits/types.h b/miniboost/bits/types.h index 5e22ce41..cb737caf 100644 --- a/miniboost/bits/types.h +++ b/miniboost/bits/types.h @@ -1,5 +1,5 @@ /* bits/types.h -- definitions of __*_t types underlying *_t types. - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -25,6 +25,7 @@ #include #include +#include /* Convenience types. */ typedef unsigned char __u_char; @@ -86,7 +87,7 @@ __extension__ typedef unsigned long long int __uintmax_t; 32 -- "natural" 32-bit type (always int) 64 -- "natural" 64-bit type (long or long long) LONG32 -- 32-bit type, traditionally long - QUAD -- 64-bit type, always long long + QUAD -- 64-bit type, traditionally long long WORD -- natural type of __WORDSIZE bits (int or long) LONGWORD -- type of __WORDSIZE bits, traditionally long @@ -112,14 +113,14 @@ __extension__ typedef unsigned long long int __uintmax_t; #define __SLONGWORD_TYPE long int #define __ULONGWORD_TYPE unsigned long int #if __WORDSIZE == 32 -# define __SQUAD_TYPE __quad_t -# define __UQUAD_TYPE __u_quad_t +# define __SQUAD_TYPE __int64_t +# define __UQUAD_TYPE __uint64_t # define __SWORD_TYPE int # define __UWORD_TYPE unsigned int # define __SLONG32_TYPE long int # define __ULONG32_TYPE unsigned long int -# define __S64_TYPE __quad_t -# define __U64_TYPE __u_quad_t +# define __S64_TYPE __int64_t +# define __U64_TYPE __uint64_t /* We want __extension__ before typedef's that use nonstandard base types such as `long long' in C89 mode. */ # define __STD_TYPE __extension__ typedef @@ -138,6 +139,7 @@ __extension__ typedef unsigned long long int __uintmax_t; # error #endif #include /* Defines __*_T_TYPE macros. */ +#include /* Defines __TIME*_T_TYPE macros. */ __STD_TYPE __DEV_T_TYPE __dev_t; /* Type of device numbers. */ @@ -211,6 +213,15 @@ __STD_TYPE __U32_TYPE __socklen_t; It is not currently necessary for this to be machine-specific. */ typedef int __sig_atomic_t; +/* Seconds since the Epoch, visible to user code when time_t is too + narrow only for consistency with the old way of widening too-narrow + types. User code should never use __time64_t. */ +#if __TIMESIZE == 64 && defined __LIBC +# define __time64_t __time_t +#elif __TIMESIZE != 64 +__STD_TYPE __TIME64_T_TYPE __time64_t; +#endif + #undef __STD_TYPE #endif /* bits/types.h */ diff --git a/miniboost/bits/types/__locale_t.h b/miniboost/bits/types/__locale_t.h index a6cccf63..028dd05d 100644 --- a/miniboost/bits/types/__locale_t.h +++ b/miniboost/bits/types/__locale_t.h @@ -1,5 +1,5 @@ /* Definition of struct __locale_struct and __locale_t. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. diff --git a/miniboost/bits/types/__sigval_t.h b/miniboost/bits/types/__sigval_t.h index 395ce501..5fdd289a 100644 --- a/miniboost/bits/types/__sigval_t.h +++ b/miniboost/bits/types/__sigval_t.h @@ -1,5 +1,5 @@ /* Define __sigval_t. - Copyright (C) 1997-2018 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/types/error_t.h b/miniboost/bits/types/error_t.h index 8ea7a814..9c9cfe6c 100644 --- a/miniboost/bits/types/error_t.h +++ b/miniboost/bits/types/error_t.h @@ -1,5 +1,5 @@ /* Define error_t. - Copyright (C) 1991-2018 Free Software Foundation, Inc. + Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/types/locale_t.h b/miniboost/bits/types/locale_t.h index 6a7aad28..fb1e14e8 100644 --- a/miniboost/bits/types/locale_t.h +++ b/miniboost/bits/types/locale_t.h @@ -1,5 +1,5 @@ /* Definition of locale_t. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/types/siginfo_t.h b/miniboost/bits/types/siginfo_t.h index 33766d18..43c4e009 100644 --- a/miniboost/bits/types/siginfo_t.h +++ b/miniboost/bits/types/siginfo_t.h @@ -107,7 +107,7 @@ typedef struct /* SIGPOLL. */ struct { - long int si_band; /* Band event for SIGPOLL. */ + __SI_BAND_TYPE si_band; /* Band event for SIGPOLL. */ int si_fd; } _sigpoll; diff --git a/miniboost/bits/types/stack_t.h b/miniboost/bits/types/stack_t.h index ce809ade..5af7a91d 100644 --- a/miniboost/bits/types/stack_t.h +++ b/miniboost/bits/types/stack_t.h @@ -1,5 +1,5 @@ /* Define stack_t. Linux version. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/types/struct_sched_param.h b/miniboost/bits/types/struct_sched_param.h index 2f24d426..8bf92c0f 100644 --- a/miniboost/bits/types/struct_sched_param.h +++ b/miniboost/bits/types/struct_sched_param.h @@ -1,5 +1,5 @@ /* Sched parameter structure. Generic version. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/types/struct_sigstack.h b/miniboost/bits/types/struct_sigstack.h index 22da1766..e4a7fc51 100644 --- a/miniboost/bits/types/struct_sigstack.h +++ b/miniboost/bits/types/struct_sigstack.h @@ -1,5 +1,5 @@ /* Define struct sigstack. - Copyright (C) 1998-2018 Free Software Foundation, Inc. + Copyright (C) 1998-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/typesizes.h b/miniboost/bits/typesizes.h index e6f7481a..18d2c63b 100644 --- a/miniboost/bits/typesizes.h +++ b/miniboost/bits/typesizes.h @@ -1,5 +1,5 @@ /* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version. - Copyright (C) 2012-2018 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/uintn-identity.h b/miniboost/bits/uintn-identity.h index 2ce92351..23824f9f 100644 --- a/miniboost/bits/uintn-identity.h +++ b/miniboost/bits/uintn-identity.h @@ -1,5 +1,5 @@ /* Inline functions to return unsigned integer values unchanged. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/uio_lim.h b/miniboost/bits/uio_lim.h index a443fd8e..022b9448 100644 --- a/miniboost/bits/uio_lim.h +++ b/miniboost/bits/uio_lim.h @@ -1,5 +1,5 @@ /* Implementation limits related to sys/uio.h - Linux version. - Copyright (C) 2017-2018 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/unistd.h b/miniboost/bits/unistd.h index 9a749dcc..4267bbb2 100644 --- a/miniboost/bits/unistd.h +++ b/miniboost/bits/unistd.h @@ -1,5 +1,5 @@ /* Checking macros for unistd functions. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/unistd_ext.h b/miniboost/bits/unistd_ext.h new file mode 100644 index 00000000..0061172f --- /dev/null +++ b/miniboost/bits/unistd_ext.h @@ -0,0 +1,36 @@ +/* System-specific extensions of , Linux version. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _UNISTD_H +# error "Never include directly; use instead." +#endif + +#ifdef __USE_GNU + +/* Return the kernel thread ID (TID) of the current thread. The + returned value is not subject to caching. Most Linux system calls + accept a TID in place of a PID. Using the TID to change properties + of a thread that has been created using pthread_create can lead to + undefined behavior (comparable to manipulating file descriptors + directly that have not been created explicitly). Note that a TID + uniquely identifies a thread only while this thread is running; a + TID can be reused once a thread has exited, even if the thread is + not detached and has not been joined. */ +extern __pid_t gettid (void) __THROW; + +#endif diff --git a/miniboost/bits/waitflags.h b/miniboost/bits/waitflags.h index e8b1dddf..790cfb3e 100644 --- a/miniboost/bits/waitflags.h +++ b/miniboost/bits/waitflags.h @@ -1,5 +1,5 @@ /* Definitions of flag bits for `waitpid' et al. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/waitstatus.h b/miniboost/bits/waitstatus.h index a1c23261..9d08786c 100644 --- a/miniboost/bits/waitstatus.h +++ b/miniboost/bits/waitstatus.h @@ -1,5 +1,5 @@ /* Definitions of status bits for `wait' et al. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/wchar-ldbl.h b/miniboost/bits/wchar-ldbl.h index b91ee9fb..a3378014 100644 --- a/miniboost/bits/wchar-ldbl.h +++ b/miniboost/bits/wchar-ldbl.h @@ -1,5 +1,5 @@ /* -mlong-double-64 compatibility mode for functions. - Copyright (C) 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,9 +27,7 @@ __LDBL_REDIR_DECL (swprintf); __LDBL_REDIR_DECL (vfwprintf); __LDBL_REDIR_DECL (vwprintf); __LDBL_REDIR_DECL (vswprintf); -# if defined __USE_ISOC99 && !defined __USE_GNU \ - && !defined __REDIRECT \ - && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) +# if !__GLIBC_USE (DEPRECATED_SCANF) __LDBL_REDIR1_DECL (fwscanf, __nldbl___isoc99_fwscanf) __LDBL_REDIR1_DECL (wscanf, __nldbl___isoc99_wscanf) __LDBL_REDIR1_DECL (swscanf, __nldbl___isoc99_swscanf) @@ -42,8 +40,7 @@ __LDBL_REDIR_DECL (swscanf); #ifdef __USE_ISOC99 __LDBL_REDIR1_DECL (wcstold, wcstod); -# if !defined __USE_GNU && !defined __REDIRECT \ - && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) +# if !__GLIBC_USE (DEPRECATED_SCANF) __LDBL_REDIR1_DECL (vfwscanf, __nldbl___isoc99_vfwscanf) __LDBL_REDIR1_DECL (vwscanf, __nldbl___isoc99_vwscanf) __LDBL_REDIR1_DECL (vswscanf, __nldbl___isoc99_vswscanf) diff --git a/miniboost/bits/wchar.h b/miniboost/bits/wchar.h index 5fa6ccd4..f21912d2 100644 --- a/miniboost/bits/wchar.h +++ b/miniboost/bits/wchar.h @@ -1,5 +1,5 @@ /* wchar_t type related definitions. - Copyright (C) 2000-2018 Free Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/wchar2.h b/miniboost/bits/wchar2.h index d62b86de..81603d56 100644 --- a/miniboost/bits/wchar2.h +++ b/miniboost/bits/wchar2.h @@ -1,5 +1,5 @@ /* Checking macros for wchar functions. - Copyright (C) 2005-2018 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/wctype-wchar.h b/miniboost/bits/wctype-wchar.h index 03c20770..22ae0abd 100644 --- a/miniboost/bits/wctype-wchar.h +++ b/miniboost/bits/wctype-wchar.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2018 Free Software Foundation, Inc. +/* Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/bits/xopen_lim.h b/miniboost/bits/xopen_lim.h index d14b633a..b76a94bd 100644 --- a/miniboost/bits/xopen_lim.h +++ b/miniboost/bits/xopen_lim.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2018 Free Software Foundation, Inc. +/* Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/boost/bind/bind.hpp b/miniboost/boost/bind/bind.hpp index 4cedc5e9..711e0001 100644 --- a/miniboost/boost/bind/bind.hpp +++ b/miniboost/boost/bind/bind.hpp @@ -2136,7 +2136,7 @@ template struct mf #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -61,7 +61,7 @@ template struct mf #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall #define BOOST_MEM_FN_CC __stdcall @@ -73,7 +73,7 @@ template struct mf #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall #define BOOST_MEM_FN_CC __fastcall @@ -102,7 +102,7 @@ template<> struct mf #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -155,7 +155,7 @@ template<> struct mf #undef BOOST_MEM_FN_NAME2 #undef BOOST_MEM_FN_CC -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl @@ -217,7 +217,7 @@ namespace _mfi #undef BOOST_MEM_FN_CC #undef BOOST_MEM_FN_NAME -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -229,7 +229,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_stdcall #define BOOST_MEM_FN_CC __stdcall @@ -241,7 +241,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_fastcall #define BOOST_MEM_FN_CC __fastcall @@ -270,7 +270,7 @@ namespace _mfi #undef BOOST_MEM_FN_NAME #undef BOOST_MEM_FN_CC -#ifdef BOOST_MEM_FN_ENABLE_CDECL +#if defined(BOOST_MEM_FN_ENABLE_CDECL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_cdecl #define BOOST_MEM_FN_CC __cdecl @@ -282,7 +282,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_STDCALL +#if defined(BOOST_MEM_FN_ENABLE_STDCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_stdcall #define BOOST_MEM_FN_CC __stdcall @@ -294,7 +294,7 @@ namespace _mfi #endif -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL +#if defined(BOOST_MEM_FN_ENABLE_FASTCALL) && !defined(_M_X64) #define BOOST_MEM_FN_NAME(X) X##_fastcall #define BOOST_MEM_FN_CC __fastcall diff --git a/miniboost/boost/circular_buffer.hpp b/miniboost/boost/circular_buffer.hpp index f0530805..90d920ba 100644 --- a/miniboost/boost/circular_buffer.hpp +++ b/miniboost/boost/circular_buffer.hpp @@ -8,6 +8,10 @@ // See www.boost.org/libs/circular_buffer for documentation. +/*! @file +Includes +*/ + #if !defined(BOOST_CIRCULAR_BUFFER_HPP) #define BOOST_CIRCULAR_BUFFER_HPP @@ -19,12 +23,12 @@ #include #include -// BOOST_CB_ENABLE_DEBUG: Debug support control. +/*! Debug support control. */ #if !defined(BOOST_CB_ENABLE_DEBUG) #define BOOST_CB_ENABLE_DEBUG 0 #endif -// BOOST_CB_ASSERT: Runtime assertion. +/*! INTERNAL ONLY */ #if BOOST_CB_ENABLE_DEBUG #include #define BOOST_CB_ASSERT(Expr) BOOST_ASSERT(Expr) @@ -32,7 +36,7 @@ #define BOOST_CB_ASSERT(Expr) ((void)0) #endif -// BOOST_CB_IS_CONVERTIBLE: Check if Iterator::value_type is convertible to Type. +/*! INTERNAL ONLY */ #if BOOST_WORKAROUND(__BORLANDC__, <= 0x0550) || BOOST_WORKAROUND(__MWERKS__, <= 0x2407) #define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) ((void)0) #else @@ -42,8 +46,7 @@ BOOST_STATIC_ASSERT((is_convertible::value_type, Type>::value)) #endif -// BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS: -// Check if the STL provides templated iterator constructors for its containers. +/*! INTERNAL ONLY */ #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) #define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS BOOST_STATIC_ASSERT(false); #else diff --git a/miniboost/boost/circular_buffer/base.hpp b/miniboost/boost/circular_buffer/base.hpp index aae90f59..ac960960 100644 --- a/miniboost/boost/circular_buffer/base.hpp +++ b/miniboost/boost/circular_buffer/base.hpp @@ -49,14 +49,14 @@ namespace boost { \brief Circular buffer - a STL compliant container. \tparam T The type of the elements stored in the circular_buffer. \par Type Requirements T - The T has to be + The T has to be SGIAssignable (SGI STL defined combination of Assignable and CopyConstructible). - Moreover T has to be + Moreover T has to be DefaultConstructible if supplied as a default parameter when invoking some of the circular_buffer's methods e.g. insert(iterator pos, const value_type& item = %value_type()). And - EqualityComparable and/or + EqualityComparable and/or LessThanComparable if the circular_buffer will be compared with another container. \tparam Alloc The allocator type used for all internal memory management. @@ -146,7 +146,7 @@ public: //! An array range. /*! - (A typedef for the std::pair where + (A typedef for the std::pair where its first element is a pointer to a beginning of an array and its second element represents a size of the array.) */ @@ -154,7 +154,7 @@ public: //! A range of a const array. /*! - (A typedef for the std::pair where + (A typedef for the std::pair where its first element is a pointer to a beginning of a const array and its second element represents a size of the const array.) */ @@ -711,7 +711,7 @@ public: //! Rotate elements in the circular_buffer. /*! A more effective implementation of - std::rotate. + std::rotate. \pre new_begin is a valid iterator pointing to the circular_buffer except its end. \post Before calling the method suppose:

@@ -733,7 +733,7 @@ public: circular_buffer is full. \par Complexity Linear (in (std::min)(m, n)); constant if the circular_buffer is full. - \sa std::rotate + \sa std::rotate */ void rotate(const_iterator new_begin) { BOOST_CB_ASSERT(new_begin.is_valid(this)); // check for uninitialized or invalidated iterator @@ -1131,7 +1131,7 @@ public: /*! \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == std::distance(first, last) \&\& full() \&\& (*this)[0]== *first \&\& (*this)[1] == *(first + 1) \&\& ... \&\& (*this)[std::distance(first, last) - 1] == *(last - 1) \param first The beginning of the range to be copied. @@ -1153,7 +1153,7 @@ public: /*! \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == buffer_capacity \&\& size() \<= std::distance(first, last) \&\& (*this)[0]== *(last - buffer_capacity) \&\& (*this)[1] == *(last - buffer_capacity + 1) \&\& ... \&\& (*this)[buffer_capacity - 1] == *(last - 1)

@@ -1170,7 +1170,7 @@ public: \par Complexity Linear (in std::distance(first, last); in min[capacity, std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). */ template circular_buffer(capacity_type buffer_capacity, InputIterator first, InputIterator last, @@ -1316,7 +1316,7 @@ public: specified range. \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == std::distance(first, last) \&\& size() == std::distance(first, last) \&\& (*this)[0]== *first \&\& (*this)[1] == *(first + 1) \&\& ... \&\& (*this)[std::distance(first, last) - 1] == *(last - 1) @@ -1349,7 +1349,7 @@ public: circular_buffer will be removed and replaced with copies of elements from the specified range. \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == buffer_capacity \&\& size() \<= std::distance(first, last) \&\& (*this)[0]== *(last - buffer_capacity) \&\& (*this)[1] == *(last - buffer_capacity + 1) \&\& ... \&\& (*this)[buffer_capacity - 1] == *(last - 1)

@@ -1370,7 +1370,7 @@ public: \par Complexity Linear (in std::distance(first, last); in min[capacity, std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). \sa \link operator=(const circular_buffer&) operator=\endlink, \link assign(size_type, param_value_type) assign(size_type, const_reference)\endlink, \link assign(capacity_type, size_type, param_value_type) @@ -1414,6 +1414,7 @@ public: // push and pop private: + /*! INTERNAL ONLY */ template void push_back_impl(ValT item) { if (full()) { @@ -1429,6 +1430,7 @@ private: } } + /*! INTERNAL ONLY */ template void push_front_impl(ValT item) { BOOST_TRY { @@ -1621,6 +1623,7 @@ public: --m_size; } private: + /*! INTERNAL ONLY */ template iterator insert_impl(iterator pos, ValT item) { BOOST_CB_ASSERT(pos.is_valid(this)); // check for uninitialized or invalidated iterator @@ -1791,7 +1794,7 @@ public: /*! \pre pos is a valid iterator pointing to the circular_buffer or its end.
Valid range [first, last) where first and last meet the - requirements of an InputIterator. + requirements of an InputIterator. \post Elements from the range [first + max[0, distance(first, last) - (pos - begin()) - reserve()], last) will be inserted at the position pos.
The number of min[pos - begin(), max[0, @@ -1814,7 +1817,7 @@ public: Linear (in [std::distance(pos, end()) + std::distance(first, last)]; in min[capacity(), std::distance(pos, end()) + std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). \par Example Consider a circular_buffer with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.

@@ -1840,6 +1843,7 @@ public: } private: + /*! INTERNAL ONLY */ template iterator rinsert_impl(iterator pos, ValT item) { BOOST_CB_ASSERT(pos.is_valid(this)); // check for uninitialized or invalidated iterator @@ -2035,7 +2039,7 @@ public: /*! \pre pos is a valid iterator pointing to the circular_buffer or its end.
Valid range [first, last) where first and last meet the - requirements of an InputIterator. + requirements of an InputIterator. \post Elements from the range [first, last - max[0, distance(first, last) - (end() - pos) - reserve()]) will be inserted before the position pos.
The number of min[end() - pos, max[0, @@ -2057,7 +2061,7 @@ public: Linear (in [std::distance(begin(), pos) + std::distance(first, last)]; in min[capacity(), std::distance(begin(), pos) + std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). \par Example Consider a circular_buffer with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.

@@ -2332,20 +2336,20 @@ public: private: // Helper methods - //! Check if the index is valid. + /*! INTERNAL ONLY */ void check_position(size_type index) const { if (index >= size()) throw_exception(std::out_of_range("circular_buffer")); } - //! Increment the pointer. + /*! INTERNAL ONLY */ template void increment(Pointer& p) const { if (++p == m_end) p = m_buff; } - //! Decrement the pointer. + /*! INTERNAL ONLY */ template void decrement(Pointer& p) const { if (p == m_buff) @@ -2353,30 +2357,32 @@ private: --p; } - //! Add n to the pointer. + /*! INTERNAL ONLY */ template Pointer add(Pointer p, difference_type n) const { - return p + (n < (m_end - p) ? n : n - capacity()); + return p + (n < (m_end - p) ? n : n - (m_end - m_buff)); } - //! Subtract n from the pointer. + /*! INTERNAL ONLY */ template Pointer sub(Pointer p, difference_type n) const { - return p - (n > (p - m_buff) ? n - capacity() : n); + return p - (n > (p - m_buff) ? n - (m_end - m_buff) : n); } - //! Map the null pointer to virtual end of circular buffer. + /*! INTERNAL ONLY */ pointer map_pointer(pointer p) const { return p == 0 ? m_last : p; } + /*! INTERNAL ONLY */ const Alloc& alloc() const { return base::get(); } + /*! INTERNAL ONLY */ Alloc& alloc() { return base::get(); } - //! Allocate memory. + /*! INTERNAL ONLY */ pointer allocate(size_type n) { if (n > max_size()) throw_exception(std::length_error("circular_buffer")); @@ -2389,18 +2395,20 @@ private: #endif } - //! Deallocate memory. + /*! INTERNAL ONLY */ void deallocate(pointer p, size_type n) { if (p != 0) alloc().deallocate(p, n); } - //! Does the pointer point to the uninitialized memory? + /*! INTERNAL ONLY */ bool is_uninitialized(const_pointer p) const BOOST_NOEXCEPT { - return p >= m_last && (m_first < m_last || p < m_first); + return (m_first < m_last) + ? (p >= m_last || p < m_first) + : (p >= m_last && p < m_first); } - //! Replace an element. + /*! INTERNAL ONLY */ void replace(pointer pos, param_value_type item) { *pos = item; #if BOOST_CB_ENABLE_DEBUG @@ -2408,7 +2416,7 @@ private: #endif } - //! Replace an element. + /*! INTERNAL ONLY */ void replace(pointer pos, rvalue_type item) { *pos = boost::move(item); #if BOOST_CB_ENABLE_DEBUG @@ -2416,11 +2424,7 @@ private: #endif } - //! Construct or replace an element. - /*! - construct has to be set to true if and only if - pos points to an uninitialized memory. - */ + /*! INTERNAL ONLY */ void construct_or_replace(bool construct, pointer pos, param_value_type item) { if (construct) cb_details::allocator_traits::construct(alloc(), boost::to_address(pos), item); @@ -2428,11 +2432,7 @@ private: replace(pos, item); } - //! Construct or replace an element. - /*! - construct has to be set to true if and only if - pos points to an uninitialized memory. - */ + /*! INTERNAL ONLY */ void construct_or_replace(bool construct, pointer pos, rvalue_type item) { if (construct) cb_details::allocator_traits::construct(alloc(), boost::to_address(pos), boost::move(item)); @@ -2440,7 +2440,7 @@ private: replace(pos, boost::move(item)); } - //! Destroy an item. + /*! INTERNAL ONLY */ void destroy_item(pointer p) { cb_details::allocator_traits::destroy(alloc(), boost::to_address(p)); #if BOOST_CB_ENABLE_DEBUG @@ -2449,13 +2449,13 @@ private: #endif } - //! Destroy an item only if it has been constructed. + /*! INTERNAL ONLY */ void destroy_if_constructed(pointer pos) { if (is_uninitialized(pos)) destroy_item(pos); } - //! Destroy the whole content of the circular buffer. + /*! INTERNAL ONLY */ void destroy_content() { #if BOOST_CB_ENABLE_DEBUG destroy_content(false_type()); @@ -2464,18 +2464,18 @@ private: #endif } - //! Specialized destroy_content method. + /*! INTERNAL ONLY */ void destroy_content(const true_type&) { m_first = add(m_first, size()); } - //! Specialized destroy_content method. + /*! INTERNAL ONLY */ void destroy_content(const false_type&) { for (size_type ii = 0; ii < size(); ++ii, increment(m_first)) destroy_item(m_first); } - //! Destroy content and free allocated memory. + /*! INTERNAL ONLY */ void destroy() BOOST_NOEXCEPT { destroy_content(); deallocate(m_buff, capacity()); @@ -2487,13 +2487,13 @@ private: #endif } - //! Initialize the internal buffer. + /*! INTERNAL ONLY */ void initialize_buffer(capacity_type buffer_capacity) { m_buff = allocate(buffer_capacity); m_end = m_buff + buffer_capacity; } - //! Initialize the internal buffer. + /*! INTERNAL ONLY */ void initialize_buffer(capacity_type buffer_capacity, param_value_type item) { initialize_buffer(buffer_capacity); BOOST_TRY { @@ -2505,7 +2505,7 @@ private: BOOST_CATCH_END } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(IntegralType n, IntegralType item, const true_type&) { m_size = static_cast(n); @@ -2513,7 +2513,7 @@ private: m_first = m_last = m_buff; } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2524,7 +2524,7 @@ private: #endif } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(InputIterator first, InputIterator last, const std::input_iterator_tag&) { BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS // check if the STL provides templated iterator constructors @@ -2534,7 +2534,7 @@ private: initialize(distance, boost::make_move_iterator(tmp.begin()), boost::make_move_iterator(tmp.end()), distance); } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { BOOST_CB_ASSERT(std::distance(first, last) >= 0); // check for wrong range @@ -2542,7 +2542,7 @@ private: initialize(distance, first, last, distance); } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(capacity_type buffer_capacity, IntegralType n, IntegralType item, const true_type&) { BOOST_CB_ASSERT(buffer_capacity >= static_cast(n)); // check for capacity lower than n @@ -2552,7 +2552,7 @@ private: m_last = buffer_capacity == size() ? m_buff : m_buff + size(); } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(capacity_type buffer_capacity, Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2563,7 +2563,7 @@ private: #endif } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(capacity_type buffer_capacity, InputIterator first, @@ -2586,7 +2586,7 @@ private: } } - //! Specialized initialize method. + /*! INTERNAL ONLY */ template void initialize(capacity_type buffer_capacity, ForwardIterator first, @@ -2596,7 +2596,7 @@ private: initialize(buffer_capacity, first, last, std::distance(first, last)); } - //! Initialize the circular buffer. + /*! INTERNAL ONLY */ template void initialize(capacity_type buffer_capacity, ForwardIterator first, @@ -2621,7 +2621,7 @@ private: m_last = m_buff; } - //! Reset the circular buffer. + /*! INTERNAL ONLY */ void reset(pointer buff, pointer last, capacity_type new_capacity) { destroy(); m_size = last - buff; @@ -2630,23 +2630,23 @@ private: m_last = last == m_end ? m_buff : last; } - //! Specialized method for swapping the allocator. + /*! INTERNAL ONLY */ void swap_allocator(circular_buffer&, const true_type&) { // Swap is not needed because allocators have no state. } - //! Specialized method for swapping the allocator. + /*! INTERNAL ONLY */ void swap_allocator(circular_buffer& cb, const false_type&) { adl_move_swap(alloc(), cb.alloc()); } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(IntegralType n, IntegralType item, const true_type&) { assign(static_cast(n), static_cast(item)); } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2657,7 +2657,7 @@ private: #endif } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(InputIterator first, InputIterator last, const std::input_iterator_tag&) { BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS // check if the STL provides templated iterator constructors @@ -2669,7 +2669,7 @@ private: (boost::make_move_iterator(tmp.begin()), boost::make_move_iterator(tmp.end()), alloc())); } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { BOOST_CB_ASSERT(std::distance(first, last) >= 0); // check for wrong range @@ -2677,13 +2677,13 @@ private: assign_n(distance, distance, cb_details::make_assign_range(first, last, alloc())); } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(capacity_type new_capacity, IntegralType n, IntegralType item, const true_type&) { assign(new_capacity, static_cast(n), static_cast(item)); } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(capacity_type new_capacity, Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2694,7 +2694,7 @@ private: #endif } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(capacity_type new_capacity, InputIterator first, InputIterator last, const std::input_iterator_tag&) { if (new_capacity == capacity()) { @@ -2706,7 +2706,7 @@ private: } } - //! Specialized assign method. + /*! INTERNAL ONLY */ template void assign(capacity_type new_capacity, ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { @@ -2720,7 +2720,7 @@ private: cb_details::make_assign_range(first, last, alloc())); } - //! Helper assign method. + /*! INTERNAL ONLY */ template void assign_n(capacity_type new_capacity, size_type n, const Functor& fnc) { if (new_capacity == capacity()) { @@ -2750,7 +2750,7 @@ private: m_last = add(m_buff, size()); } - //! Helper insert method. + /*! INTERNAL ONLY */ template iterator insert_item(const iterator& pos, ValT item) { pointer p = pos.m_it; @@ -2786,13 +2786,13 @@ private: return iterator(this, p); } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(const iterator& pos, IntegralType n, IntegralType item, const true_type&) { insert(pos, static_cast(n), static_cast(item)); } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(const iterator& pos, Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2803,7 +2803,7 @@ private: #endif } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(iterator pos, InputIterator first, InputIterator last, const std::input_iterator_tag&) { if (!full() || pos != begin()) { @@ -2812,7 +2812,7 @@ private: } } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(const iterator& pos, ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { BOOST_CB_ASSERT(std::distance(first, last) >= 0); // check for wrong range @@ -2829,7 +2829,7 @@ private: insert_n(pos, n, cb_details::iterator_wrapper(first)); } - //! Helper insert method. + /*! INTERNAL ONLY */ template void insert_n(const iterator& pos, size_type n, const Wrapper& wrapper) { size_type construct = reserve(); @@ -2877,13 +2877,13 @@ private: m_size += construct; } - //! Specialized rinsert method. + /*! INTERNAL ONLY */ template void rinsert(const iterator& pos, IntegralType n, IntegralType item, const true_type&) { rinsert(pos, static_cast(n), static_cast(item)); } - //! Specialized rinsert method. + /*! INTERNAL ONLY */ template void rinsert(const iterator& pos, Iterator first, Iterator last, const false_type&) { BOOST_CB_IS_CONVERTIBLE(Iterator, value_type); // check for invalid iterator type @@ -2894,7 +2894,7 @@ private: #endif } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void rinsert(iterator pos, InputIterator first, InputIterator last, const std::input_iterator_tag&) { if (!full() || pos.m_it != 0) { @@ -2906,14 +2906,14 @@ private: } } - //! Specialized rinsert method. + /*! INTERNAL ONLY */ template void rinsert(const iterator& pos, ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { BOOST_CB_ASSERT(std::distance(first, last) >= 0); // check for wrong range rinsert_n(pos, std::distance(first, last), cb_details::iterator_wrapper(first)); } - //! Helper rinsert method. + /*! INTERNAL ONLY */ template void rinsert_n(const iterator& pos, size_type n, const Wrapper& wrapper) { if (n == 0) @@ -2966,25 +2966,25 @@ private: m_size += construct; } - //! Specialized erase_begin method. + /*! INTERNAL ONLY */ void erase_begin(size_type n, const true_type&) { m_first = add(m_first, n); m_size -= n; } - //! Specialized erase_begin method. + /*! INTERNAL ONLY */ void erase_begin(size_type n, const false_type&) { iterator b = begin(); rerase(b, b + n); } - //! Specialized erase_end method. + /*! INTERNAL ONLY */ void erase_end(size_type n, const true_type&) { m_last = sub(m_last, n); m_size -= n; } - //! Specialized erase_end method. + /*! INTERNAL ONLY */ void erase_end(size_type n, const false_type&) { iterator e = end(); erase(e - n, e); @@ -2998,7 +2998,7 @@ private: \param lhs The circular_buffer to compare. \param rhs The circular_buffer to compare. \return lhs.\link circular_buffer::size() size()\endlink == rhs.\link circular_buffer::size() size()\endlink - && std::equal(lhs.\link circular_buffer::begin() + && std::equal(lhs.\link circular_buffer::begin() begin()\endlink, lhs.\link circular_buffer::end() end()\endlink, rhs.\link circular_buffer::begin() begin()\endlink) \throws Nothing. @@ -3017,7 +3017,7 @@ inline bool operator == (const circular_buffer& lhs, const circular_bu right one. \param lhs The circular_buffer to compare. \param rhs The circular_buffer to compare. - \return + \return std::lexicographical_compare(lhs.\link circular_buffer::begin() begin()\endlink, lhs.\link circular_buffer::end() end()\endlink, rhs.\link circular_buffer::begin() begin()\endlink, rhs.\link circular_buffer::end() end()\endlink) diff --git a/miniboost/boost/circular_buffer/space_optimized.hpp b/miniboost/boost/circular_buffer/space_optimized.hpp index 73d60c4f..34dbd9b9 100644 --- a/miniboost/boost/circular_buffer/space_optimized.hpp +++ b/miniboost/boost/circular_buffer/space_optimized.hpp @@ -453,7 +453,7 @@ public: /*! \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity().%capacity() == std::distance(first, last) \&\& capacity().min_capacity() == 0 \&\& full() \&\& (*this)[0]== *first \&\& (*this)[1] == *(first + 1) \&\& ... \&\& (*this)[std::distance(first, last) - 1] == *(last - 1)

@@ -478,7 +478,7 @@ public: of allocated memory) filled with a copy of the range. \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == capacity_ctrl \&\& size() \<= std::distance(first, last) \&\& (*this)[0]== *(last - capacity_ctrl.%capacity()) \&\& (*this)[1] == *(last - capacity_ctrl.%capacity() + 1) \&\& ... \&\& (*this)[capacity_ctrl.%capacity() - 1] == *(last - 1)

@@ -499,7 +499,7 @@ public: \par Complexity Linear (in std::distance(first, last); in min[capacity_ctrl.%capacity(), std::distance(first, last)] if the InputIterator - is a RandomAccessIterator). + is a RandomAccessIterator). */ template circular_buffer_space_optimized(capacity_type capacity_ctrl, InputIterator first, InputIterator last, @@ -655,7 +655,7 @@ public: elements from the specified range. \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity().%capacity() == std::distance(first, last) \&\& capacity().min_capacity() == 0 \&\& size() == std::distance(first, last) \&\& (*this)[0]== *first \&\& (*this)[1] == *(first + 1) \&\& ... \&\& (*this)[std::distance(first, last) - 1] == *(last - 1)

@@ -692,7 +692,7 @@ public: elements from the specified range. \pre Valid range [first, last).
first and last have to meet the requirements of - InputIterator. + InputIterator. \post capacity() == capacity_ctrl \&\& size() \<= std::distance(first, last) \&\& (*this)[0]== *(last - capacity) \&\& (*this)[1] == *(last - capacity + 1) \&\& ... \&\& (*this)[capacity - 1] == *(last - 1)

@@ -715,7 +715,7 @@ public: \par Complexity Linear (in std::distance(first, last); in min[capacity_ctrl.%capacity(), std::distance(first, last)] if the InputIterator - is a RandomAccessIterator). + is a RandomAccessIterator). \sa \link operator=(const circular_buffer_space_optimized&) operator=\endlink, \link assign(size_type, param_value_type) assign(size_type, const_reference)\endlink, \link assign(capacity_type, size_type, param_value_type) @@ -1114,7 +1114,7 @@ public: /*! \pre pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
Valid range [first, last) where first and last meet the - requirements of an InputIterator. + requirements of an InputIterator. \post Elements from the range [first + max[0, distance(first, last) - (pos - begin()) - reserve()], last) will be inserted at the position pos.
The number of min[pos - begin(), max[0, @@ -1136,7 +1136,7 @@ public: Linear (in [size() + std::distance(first, last)]; in min[capacity().%capacity(), size() + std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). \par Example Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.

@@ -1326,7 +1326,7 @@ public: \pre pos is a valid iterator pointing to the circular_buffer_space_optimized or its end.
Valid range [first, last) where first and last meet the - requirements of an InputIterator. + requirements of an InputIterator. \post Elements from the range [first, last - max[0, distance(first, last) - (end() - pos) - reserve()]) will be inserted before the position pos.
The number of min[end() - pos, max[0, @@ -1349,7 +1349,7 @@ public: Linear (in [size() + std::distance(first, last)]; in min[capacity().%capacity(), size() + std::distance(first, last)] if the InputIterator is a - RandomAccessIterator). + RandomAccessIterator). \par Example Consider a circular_buffer_space_optimized with the capacity of 6 and the size of 4. Its internal buffer may look like the one below.

@@ -1522,7 +1522,7 @@ public: private: // Helper methods - //! Adjust the amount of allocated memory. + /*! INTERNAL ONLY */ void adjust_min_capacity() { if (m_capacity_ctrl.min_capacity() > circular_buffer::capacity()) circular_buffer::set_capacity(m_capacity_ctrl.min_capacity()); @@ -1530,7 +1530,7 @@ private: check_high_capacity(); } - //! Ensure the reserve for possible growth up. + /*! INTERNAL ONLY */ size_type ensure_reserve(size_type new_capacity, size_type buffer_size) const { if (buffer_size + new_capacity / 5 >= new_capacity) new_capacity *= 2; // ensure at least 20% reserve @@ -1539,10 +1539,7 @@ private: return new_capacity; } - //! Check for low capacity. - /* - \post If the capacity is low it will be increased. - */ + /*! INTERNAL ONLY */ void check_low_capacity(size_type n = 1) { size_type new_size = size() + n; size_type new_capacity = circular_buffer::capacity(); @@ -1558,10 +1555,7 @@ private: #endif } - //! Check for high capacity. - /* - \post If the capacity is high it will be decreased. - */ + /*! INTERNAL ONLY */ void check_high_capacity() { size_type new_capacity = circular_buffer::capacity(); while (new_capacity / 3 >= size()) { // (new_capacity / 3) -> avoid oscillations @@ -1578,28 +1572,28 @@ private: #endif } - //! Specialized method for reducing the capacity. + /*! INTERNAL ONLY */ void reduce_capacity(const true_type&) { circular_buffer::set_capacity((std::max)(m_capacity_ctrl.min_capacity(), size())); } - //! Specialized method for reducing the capacity. + /*! INTERNAL ONLY */ void reduce_capacity(const false_type&) {} - //! Determine the initial capacity. + /*! INTERNAL ONLY */ static size_type init_capacity(const capacity_type& capacity_ctrl, size_type n) { BOOST_CB_ASSERT(capacity_ctrl.capacity() >= n); // check for capacity lower than n return (std::max)(capacity_ctrl.min_capacity(), n); } - //! Specialized method for determining the initial capacity. + /*! INTERNAL ONLY */ template static size_type init_capacity(const capacity_type& capacity_ctrl, IntegralType n, IntegralType, const true_type&) { return init_capacity(capacity_ctrl, static_cast(n)); } - //! Specialized method for determining the initial capacity. + /*! INTERNAL ONLY */ template static size_type init_capacity(const capacity_type& capacity_ctrl, Iterator first, Iterator last, const false_type&) { @@ -1612,14 +1606,14 @@ private: #endif } - //! Specialized method for determining the initial capacity. + /*! INTERNAL ONLY */ template static size_type init_capacity(const capacity_type& capacity_ctrl, InputIterator, InputIterator, const std::input_iterator_tag&) { return capacity_ctrl.capacity(); } - //! Specialized method for determining the initial capacity. + /*! INTERNAL ONLY */ template static size_type init_capacity(const capacity_type& capacity_ctrl, ForwardIterator first, ForwardIterator last, const std::forward_iterator_tag&) { @@ -1628,13 +1622,13 @@ private: (std::min)(capacity_ctrl.capacity(), static_cast(std::distance(first, last)))); } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(const iterator& pos, IntegralType n, IntegralType item, const true_type&) { insert(pos, static_cast(n), static_cast(item)); } - //! Specialized insert method. + /*! INTERNAL ONLY */ template void insert(const iterator& pos, Iterator first, Iterator last, const false_type&) { size_type index = pos - begin(); @@ -1642,13 +1636,13 @@ private: circular_buffer::insert(begin() + index, first, last); } - //! Specialized rinsert method. + /*! INTERNAL ONLY */ template void rinsert(const iterator& pos, IntegralType n, IntegralType item, const true_type&) { rinsert(pos, static_cast(n), static_cast(item)); } - //! Specialized rinsert method. + /*! INTERNAL ONLY */ template void rinsert(const iterator& pos, Iterator first, Iterator last, const false_type&) { size_type index = pos - begin(); diff --git a/miniboost/boost/config/auto_link.hpp b/miniboost/boost/config/auto_link.hpp index f34353b5..e74f3c10 100644 --- a/miniboost/boost/config/auto_link.hpp +++ b/miniboost/boost/config/auto_link.hpp @@ -99,7 +99,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. #if defined(BOOST_MSVC) \ || defined(__BORLANDC__) \ || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) + || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \ + || (defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4)) #ifndef BOOST_VERSION_HPP # include @@ -173,11 +174,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // vc14: # define BOOST_LIB_TOOLSET "vc140" -# elif defined(BOOST_MSVC) +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1920) // vc14.1: # define BOOST_LIB_TOOLSET "vc141" +# elif defined(BOOST_MSVC) + + // vc14.2: +# define BOOST_LIB_TOOLSET "vc142" + # elif defined(__BORLANDC__) // CBuilder 6: @@ -198,6 +204,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. // Metrowerks CodeWarrior 9.x # define BOOST_LIB_TOOLSET "cw9" +# elif defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4) + + // Clang on Windows +# define BOOST_LIB_TOOLSET "clangw" BOOST_STRINGIZE(__clang_major__) + # endif #endif // BOOST_LIB_TOOLSET @@ -405,9 +416,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. && defined(BOOST_LIB_VERSION) #ifdef BOOST_AUTO_LINK_TAGGED -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT ".lib") # ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT ".lib") # endif #elif defined(BOOST_AUTO_LINK_SYSTEM) # pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") diff --git a/miniboost/boost/config/compiler/clang.hpp b/miniboost/boost/config/compiler/clang.hpp index 3a59ff58..52b23d9d 100644 --- a/miniboost/boost/config/compiler/clang.hpp +++ b/miniboost/boost/config/compiler/clang.hpp @@ -57,6 +57,14 @@ # define BOOST_HAS_STDINT_H #endif +#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC) +#if (__clang_major__ >= 4) && defined(__has_include) +#if __has_include() +# define BOOST_HAS_FLOAT128 +#endif +#endif +#endif + #define BOOST_HAS_NRVO diff --git a/miniboost/boost/config/compiler/gcc.hpp b/miniboost/boost/config/compiler/gcc.hpp index 594c44f5..3380ffed 100644 --- a/miniboost/boost/config/compiler/gcc.hpp +++ b/miniboost/boost/config/compiler/gcc.hpp @@ -232,7 +232,6 @@ // C++0x features in 4.6.n and later // #if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) -#define BOOST_NO_CXX11_CONSTEXPR #define BOOST_NO_CXX11_DEFAULTED_MOVES #define BOOST_NO_CXX11_NOEXCEPT #define BOOST_NO_CXX11_NULLPTR @@ -243,6 +242,9 @@ // C++0x features in 4.7.n and later // #if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) +// Note that while constexpr is partly supported in gcc-4.6 it's a +// pre-std version with several bugs: +# define BOOST_NO_CXX11_CONSTEXPR # define BOOST_NO_CXX11_FINAL # define BOOST_NO_CXX11_TEMPLATE_ALIASES # define BOOST_NO_CXX11_USER_DEFINED_LITERALS @@ -307,8 +309,8 @@ # define BOOST_FALLTHROUGH __attribute__((fallthrough)) #endif -#ifdef __MINGW32__ -// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see +#if defined(__MINGW32__) && !defined(__MINGW64__) +// Currently (March 2019) thread_local is broken on mingw for all current 32bit compiler releases, see // https://sourceforge.net/p/mingw-w64/bugs/527/ // Not setting this causes program termination on thread exit. #define BOOST_NO_CXX11_THREAD_LOCAL @@ -325,7 +327,7 @@ // // __builtin_unreachable: -#if BOOST_GCC_VERSION >= 40800 +#if BOOST_GCC_VERSION >= 40500 #define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); #endif diff --git a/miniboost/boost/config/compiler/visualc.hpp b/miniboost/boost/config/compiler/visualc.hpp index 29642473..e2ea2702 100644 --- a/miniboost/boost/config/compiler/visualc.hpp +++ b/miniboost/boost/config/compiler/visualc.hpp @@ -43,6 +43,9 @@ # error "Compiler not supported or configured - please reconfigure" #endif +// VS2005 (VC8) docs: __assume has been in Visual C++ for multiple releases +#define BOOST_UNREACHABLE_RETURN(x) __assume(0); + #if _MSC_FULL_VER < 180020827 # define BOOST_NO_FENV_H #endif @@ -202,8 +205,9 @@ #if (_MSC_VER < 1911) || (_MSVC_LANG < 201703) # define BOOST_NO_CXX17_STRUCTURED_BINDINGS # define BOOST_NO_CXX17_IF_CONSTEXPR -# define BOOST_NO_CXX17_HDR_OPTIONAL -# define BOOST_NO_CXX17_HDR_STRING_VIEW +// Let the defaults handle these now: +//# define BOOST_NO_CXX17_HDR_OPTIONAL +//# define BOOST_NO_CXX17_HDR_STRING_VIEW #endif // MSVC including version 14 has not yet completely @@ -313,7 +317,7 @@ # endif # else # if _MSC_VER < 1200 - // Note: Versions up to 7.0 aren't supported. + // Note: Versions up to 10.0 aren't supported. # define BOOST_COMPILER_VERSION 5.0 # elif _MSC_VER < 1300 # define BOOST_COMPILER_VERSION 6.0 @@ -335,6 +339,8 @@ # define BOOST_COMPILER_VERSION 14.0 # elif _MSC_VER < 1920 # define BOOST_COMPILER_VERSION 14.1 +# elif _MSC_VER < 1930 +# define BOOST_COMPILER_VERSION 14.2 # else # define BOOST_COMPILER_VERSION _MSC_VER # endif @@ -346,8 +352,8 @@ #include // -// last known and checked version is 19.12.25830.2 (VC++ 2017.3): -#if (_MSC_VER > 1912) +// last known and checked version is 19.20.27508 (VC++ 2019 RC3): +#if (_MSC_VER > 1920) # if defined(BOOST_ASSERT_CONFIG) # error "Boost.Config is older than your current compiler version." # elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE) diff --git a/miniboost/boost/config/detail/suffix.hpp b/miniboost/boost/config/detail/suffix.hpp index cee9647b..86f6081e 100644 --- a/miniboost/boost/config/detail/suffix.hpp +++ b/miniboost/boost/config/detail/suffix.hpp @@ -992,6 +992,23 @@ namespace std{ using ::type_info; } #ifndef BOOST_ATTRIBUTE_UNUSED # define BOOST_ATTRIBUTE_UNUSED #endif +// +// [[nodiscard]]: +// +#ifdef __has_cpp_attribute +#if __has_cpp_attribute(nodiscard) +# define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]] +#endif +#if __has_cpp_attribute(no_unique_address) && !(defined(__GNUC__) && (__cplusplus < 201100)) +# define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]] +#endif +#endif +#ifndef BOOST_ATTRIBUTE_NODISCARD +# define BOOST_ATTRIBUTE_NODISCARD +#endif +#ifndef BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS +# define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS +#endif #define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST @@ -1027,6 +1044,7 @@ namespace std{ using ::type_info; } #if !defined(__has_include) # define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT #else #if !__has_include() # define BOOST_NO_CXX17_HDR_OPTIONAL @@ -1034,6 +1052,9 @@ namespace std{ using ::type_info; } #if !__has_include() # define BOOST_NO_CXX17_HDR_STRING_VIEW #endif +#if !__has_include() +# define BOOST_NO_CXX17_HDR_VARIANT +#endif #endif // diff --git a/miniboost/boost/config/platform/cygwin.hpp b/miniboost/boost/config/platform/cygwin.hpp index 6dd7e57c..d0052d8b 100644 --- a/miniboost/boost/config/platform/cygwin.hpp +++ b/miniboost/boost/config/platform/cygwin.hpp @@ -42,8 +42,11 @@ # define BOOST_HAS_STDINT_H #endif +#include +#if (CYGWIN_VERSION_API_MAJOR == 0 && CYGWIN_VERSION_API_MINOR < 231) /// Cygwin has no fenv.h #define BOOST_NO_FENV_H +#endif // Cygwin has it's own which breaks unless the correct compiler flags are used: #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/miniboost/boost/config/platform/vxworks.hpp b/miniboost/boost/config/platform/vxworks.hpp index a91e4ab4..7718acb6 100644 --- a/miniboost/boost/config/platform/vxworks.hpp +++ b/miniboost/boost/config/platform/vxworks.hpp @@ -12,40 +12,17 @@ // like (GCC 2.96) . Do not even think of getting this to work, // a miserable failure will be guaranteed! // -// Equally, this file has been tested for RTPs (Real Time Processes) -// only, not for DKMs (Downloadable Kernel Modules). These two types -// of executables differ largely in the available functionality of -// the C-library, STL, and so on. A DKM uses a C89 library with no -// wide character support and no guarantee of ANSI C. The same Dinkum +// VxWorks supports C++ linkage in the kernel with +// DKMs (Downloadable Kernel Modules). But, until recently +// the kernel used a C89 library with no +// wide character support and no guarantee of ANSI C. +// Regardless of the C library the same Dinkum // STL library is used in both contexts. // // Similarly the Dinkum abridged STL that supports the loosely specified // embedded C++ standard has not been tested and is unlikely to work // on anything but the simplest library. // ==================================================================== -// -// Additional Configuration -// ------------------------------------------------------------------- -// -// Because of the ordering of include files and other issues the following -// additional definitions worked better outside this file. -// -// When building the log library add the following to the b2 invocation -// define=BOOST_LOG_WITHOUT_IPC -// and -// -DBOOST_LOG_WITHOUT_DEFAULT_FACTORIES -// to your compile options. -// -// When building the test library add -// -DBOOST_TEST_LIMITED_SIGNAL_DETAILS -// to your compile options -// -// When building containers library add -// -DHAVE_MORECORE=0 -// to your c compile options so dlmalloc heap library is compiled -// without brk() calls -// -// ==================================================================== // // Some important information regarding the usage of POSIX semaphores: // ------------------------------------------------------------------- @@ -112,30 +89,20 @@ // -------------------------------- #define BOOST_PLATFORM "vxWorks" -// Special behaviour for DKMs: -#ifdef _WRS_KERNEL - // DKMs do not have the -header, - // but apparently they do have an intrinsic wchar_t meanwhile! -# define BOOST_NO_CWCHAR - - // Lots of wide-functions and -headers are unavailable for DKMs as well: -# define BOOST_NO_CWCTYPE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTREAMBUF -#endif // Generally available headers: #define BOOST_HAS_UNISTD_H #define BOOST_HAS_STDINT_H #define BOOST_HAS_DIRENT_H -#define BOOST_HAS_SLIST +//#define BOOST_HAS_SLIST // vxWorks does not have installed an iconv-library by default, // so unfortunately no Unicode support from scratch is available! // Thus, instead it is suggested to switch to ICU, as this seems // to be the most complete and portable option... -#define BOOST_LOCALE_WITH_ICU +#ifndef BOOST_LOCALE_WITH_ICU + #define BOOST_LOCALE_WITH_ICU +#endif // Generally available functionality: #define BOOST_HAS_THREADS @@ -170,16 +137,18 @@ # ifndef _POSIX_THREADS # define _POSIX_THREADS 1 # endif +// no sysconf( _SC_PAGESIZE) in kernel +# define BOOST_THREAD_USES_GETPAGESIZE #endif #if (_WRS_VXWORKS_MAJOR < 7) // vxWorks-around: #defines CLOCKS_PER_SEC as sysClkRateGet() but // miserably fails to #include the required to make // sysClkRateGet() available! So we manually include it here. -#ifdef __RTP__ -# include -# include -#endif +# ifdef __RTP__ +# include +# include +# endif // vxWorks-around: In the macros INT32_C(), UINT32_C(), INT64_C() and // UINT64_C() are defined erroneously, yielding not a signed/ @@ -188,30 +157,47 @@ // when trying to define several constants which do not fit into a // long type! We correct them here by redefining. -#include +# include + +// Special behaviour for DKMs: // Some macro-magic to do the job -#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) -#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) -#define VX_DO_JOIN2(X, Y) X##Y +# define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) +# define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) +# define VX_DO_JOIN2(X, Y) X##Y // Correctly setup the macros -#undef INT32_C -#undef UINT32_C -#undef INT64_C -#undef UINT64_C -#define INT32_C(x) VX_JOIN(x, L) -#define UINT32_C(x) VX_JOIN(x, UL) -#define INT64_C(x) VX_JOIN(x, LL) -#define UINT64_C(x) VX_JOIN(x, ULL) +# undef INT32_C +# undef UINT32_C +# undef INT64_C +# undef UINT64_C +# define INT32_C(x) VX_JOIN(x, L) +# define UINT32_C(x) VX_JOIN(x, UL) +# define INT64_C(x) VX_JOIN(x, LL) +# define UINT64_C(x) VX_JOIN(x, ULL) // #include Libraries required for the following function adaption -#include +# include #endif // _WRS_VXWORKS_MAJOR < 7 #include #include +#if defined(_WRS_KERNEL) && (_CPPLIB_VER < 700) + // recent kernels use Dinkum clib v7.00+ + // with widechar but older kernels + // do not have the -header, + // but apparently they do have an intrinsic wchar_t meanwhile! +# define BOOST_NO_CWCHAR + + // Lots of wide-functions and -headers are unavailable for DKMs as well: +# define BOOST_NO_CWCTYPE +# define BOOST_NO_SWPRINTF +# define BOOST_NO_STD_WSTRING +# define BOOST_NO_STD_WSTREAMBUF +#endif + + // Use C-linkage for the following helper functions #ifdef __cplusplus extern "C" { @@ -253,9 +239,9 @@ inline int truncate(const char *p, off_t l){ } #ifdef __GNUC__ -#define ___unused __attribute__((unused)) +# define ___unused __attribute__((unused)) #else -#define ___unused +# define ___unused #endif // Fake symlink handling by dummy functions: @@ -291,7 +277,7 @@ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) { * to avoid conflict with MPL operator times */ #if (_WRS_VXWORKS_MAJOR < 7) -#ifdef __cplusplus +# ifdef __cplusplus // vxWorks provides neither struct tms nor function times()! // We implement an empty dummy-function, simply setting the user @@ -327,7 +313,7 @@ struct tms{ namespace std { using ::times; } -#endif // __cplusplus +# endif // __cplusplus #endif // _WRS_VXWORKS_MAJOR < 7 @@ -336,16 +322,16 @@ extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but does // Put the selfmade functions into the std-namespace, just in case namespace std { -# ifdef __RTP__ +# ifdef __RTP__ using ::getrlimit; using ::setrlimit; -# endif +# endif using ::truncate; using ::symlink; using ::readlink; -#if (_WRS_VXWORKS_MAJOR < 7) +# if (_WRS_VXWORKS_MAJOR < 7) using ::gettimeofday; -#endif +# endif } #endif // __cplusplus @@ -355,10 +341,12 @@ namespace std { // Include signal.h which might contain a typo to be corrected here #include + #if (_WRS_VXWORKS_MAJOR < 7) -#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! +# define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks! #endif + #ifndef S_ISSOCK # define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket? #endif @@ -379,7 +367,7 @@ typedef int locale_t; // locale_t is a POSIX-ex // vxWorks 7 adds C++11 support // however it is optional, and does not match exactly the support determined // by examining the Dinkum STL version and GCC version (or ICC and DCC) -#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011 +#if !( defined( _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011) || defined(_WRS_CONFIG_LIBCPLUS_STD)) # define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location # define BOOST_NO_CXX11_ALLOCATOR # define BOOST_NO_CXX11_ATOMIC_SMART_PTR @@ -408,9 +396,9 @@ typedef int locale_t; // locale_t is a POSIX-ex # define BOOST_NO_CXX11_HDR_UNORDERED_MAP # define BOOST_NO_CXX11_HDR_UNORDERED_SET #else -#ifndef BOOST_SYSTEM_NO_DEPRECATED -# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit -#endif +# ifndef BOOST_SYSTEM_NO_DEPRECATED +# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit +# endif #endif @@ -418,6 +406,8 @@ typedef int locale_t; // locale_t is a POSIX-ex #undef NONE // restrict is an iostreams class #undef restrict +// affects some typeof tests +#undef V7 // use fake poll() from Unix layer in ASIO to get full functionality // most libraries will use select() but this define allows 'iostream' functionality @@ -430,4 +420,3 @@ typedef int locale_t; // locale_t is a POSIX-ex # define BOOST_ASIO_DISABLE_SERIAL_PORT #endif - diff --git a/miniboost/boost/config/stdlib/dinkumware.hpp b/miniboost/boost/config/stdlib/dinkumware.hpp index e829f08e..19c772c1 100644 --- a/miniboost/boost/config/stdlib/dinkumware.hpp +++ b/miniboost/boost/config/stdlib/dinkumware.hpp @@ -174,6 +174,9 @@ #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) # define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_ITERATOR_TRAITS +# define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_OPTIONAL +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709) # define BOOST_NO_CXX17_STD_INVOKE diff --git a/miniboost/boost/config/stdlib/libcpp.hpp b/miniboost/boost/config/stdlib/libcpp.hpp index ffe2f2a0..e5e5c349 100644 --- a/miniboost/boost/config/stdlib/libcpp.hpp +++ b/miniboost/boost/config/stdlib/libcpp.hpp @@ -91,6 +91,7 @@ # define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR) # define BOOST_NO_AUTO_PTR diff --git a/miniboost/boost/config/stdlib/libstdcpp3.hpp b/miniboost/boost/config/stdlib/libstdcpp3.hpp index 38209ddd..9696515c 100644 --- a/miniboost/boost/config/stdlib/libstdcpp3.hpp +++ b/miniboost/boost/config/stdlib/libstdcpp3.hpp @@ -301,6 +301,7 @@ extern "C" char *gets (char *__s); # define BOOST_NO_CXX17_STD_APPLY # define BOOST_NO_CXX17_HDR_OPTIONAL # define BOOST_NO_CXX17_HDR_STRING_VIEW +# define BOOST_NO_CXX17_HDR_VARIANT #endif #if defined(__has_include) diff --git a/miniboost/boost/core/checked_delete.hpp b/miniboost/boost/core/checked_delete.hpp index b086e03e..6af5c141 100644 --- a/miniboost/boost/core/checked_delete.hpp +++ b/miniboost/boost/core/checked_delete.hpp @@ -7,6 +7,8 @@ # pragma once #endif +#include + // // boost/checked_delete.hpp // @@ -26,7 +28,7 @@ namespace boost // verify that types are complete for increased safety -template inline void checked_delete(T * x) +template inline void checked_delete(T * x) BOOST_NOEXCEPT { // intentionally complex - simplification causes regressions typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; @@ -34,7 +36,7 @@ template inline void checked_delete(T * x) delete x; } -template inline void checked_array_delete(T * x) +template inline void checked_array_delete(T * x) BOOST_NOEXCEPT { typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; (void) sizeof(type_must_be_complete); @@ -46,7 +48,7 @@ template struct checked_deleter typedef void result_type; typedef T * argument_type; - void operator()(T * x) const + void operator()(T * x) const BOOST_NOEXCEPT { // boost:: disables ADL boost::checked_delete(x); @@ -58,7 +60,7 @@ template struct checked_array_deleter typedef void result_type; typedef T * argument_type; - void operator()(T * x) const + void operator()(T * x) const BOOST_NOEXCEPT { boost::checked_array_delete(x); } diff --git a/miniboost/boost/core/empty_value.hpp b/miniboost/boost/core/empty_value.hpp index 9265f05d..7139b3e1 100644 --- a/miniboost/boost/core/empty_value.hpp +++ b/miniboost/boost/core/empty_value.hpp @@ -71,6 +71,10 @@ public: template empty_value(boost::empty_init_t, const U& value) : value_(value) { } + + template + empty_value(boost::empty_init_t, U& value) + : value_(value) { } #endif const T& get() const BOOST_NOEXCEPT { @@ -115,6 +119,10 @@ public: template empty_value(boost::empty_init_t, const U& value) : T(value) { } + + template + empty_value(boost::empty_init_t, U& value) + : T(value) { } #endif const T& get() const BOOST_NOEXCEPT { diff --git a/miniboost/boost/core/no_exceptions_support.hpp b/miniboost/boost/core/no_exceptions_support.hpp index e2453d08..6fd76b24 100644 --- a/miniboost/boost/core/no_exceptions_support.hpp +++ b/miniboost/boost/core/no_exceptions_support.hpp @@ -32,9 +32,21 @@ # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) # define BOOST_TRY { if ("") # define BOOST_CATCH(x) else if (!"") -# else +# elif !defined(BOOST_MSVC) || BOOST_MSVC >= 1900 # define BOOST_TRY { if (true) # define BOOST_CATCH(x) else if (false) +# else + // warning C4127: conditional expression is constant +# define BOOST_TRY { \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (true) \ + __pragma(warning(pop)) +# define BOOST_CATCH(x) else \ + __pragma(warning(push)) \ + __pragma(warning(disable: 4127)) \ + if (false) \ + __pragma(warning(pop)) # endif # define BOOST_RETHROW # define BOOST_CATCH_END } diff --git a/miniboost/boost/core/typeinfo.hpp b/miniboost/boost/core/typeinfo.hpp index a272596a..d33d29ba 100644 --- a/miniboost/boost/core/typeinfo.hpp +++ b/miniboost/boost/core/typeinfo.hpp @@ -47,7 +47,7 @@ public: bool operator==( typeinfo const& rhs ) const { -#if ( defined(_WIN32) || defined(__CYGWIN__) ) && defined(__GNUC__) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) +#if ( defined(_WIN32) || defined(__CYGWIN__) ) && ( defined(__GNUC__) || defined(__clang__) ) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) return lib_id_ == rhs.lib_id_? this == &rhs: std::strcmp( name_, rhs.name_ ) == 0; @@ -65,7 +65,7 @@ public: bool before( typeinfo const& rhs ) const { -#if ( defined(_WIN32) || defined(__CYGWIN__) ) && defined(__GNUC__) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) +#if ( defined(_WIN32) || defined(__CYGWIN__) ) && ( defined(__GNUC__) || defined(__clang__) ) && !defined(BOOST_DISABLE_CURRENT_FUNCTION) return lib_id_ == rhs.lib_id_? std::less< typeinfo const* >()( this, &rhs ): std::strcmp( name_, rhs.name_ ) < 0; diff --git a/miniboost/boost/core/use_default.hpp b/miniboost/boost/core/use_default.hpp new file mode 100644 index 00000000..9d9be79d --- /dev/null +++ b/miniboost/boost/core/use_default.hpp @@ -0,0 +1,17 @@ +/* +Copyright 2019 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_CORE_USE_DEFAULT_HPP +#define BOOST_CORE_USE_DEFAULT_HPP + +namespace boost { + +struct use_default { }; + +} /* boost */ + +#endif diff --git a/miniboost/boost/current_function.hpp b/miniboost/boost/current_function.hpp index 86955cb0..731d1b13 100644 --- a/miniboost/boost/current_function.hpp +++ b/miniboost/boost/current_function.hpp @@ -10,13 +10,13 @@ // // boost/current_function.hpp - BOOST_CURRENT_FUNCTION // -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// Copyright 2002-2018 Peter Dimov // // Distributed under 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 // -// http://www.boost.org/libs/assert/current_function.html +// http://www.boost.org/libs/assert // namespace boost @@ -32,7 +32,7 @@ inline void current_function_helper() # define BOOST_CURRENT_FUNCTION "(unknown)" -#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) +#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) || defined(__clang__) # define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ diff --git a/miniboost/boost/detail/allocator_utilities.hpp b/miniboost/boost/detail/allocator_utilities.hpp deleted file mode 100644 index b9778a92..00000000 --- a/miniboost/boost/detail/allocator_utilities.hpp +++ /dev/null @@ -1,193 +0,0 @@ -/* Copyright 2003-2013 Joaquin M Lopez Munoz. - * Distributed under 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 Boost website at http://www.boost.org/ - */ - -#ifndef BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP -#define BOOST_DETAIL_ALLOCATOR_UTILITIES_HPP - -#include /* keep it first to prevent nasty warns in MSVC */ -#include -#include -#include -#include -#include -#include - -namespace boost{ - -namespace detail{ - -/* Allocator adaption layer. Some stdlibs provide allocators without rebind - * and template ctors. These facilities are simulated with the external - * template class rebind_to and the aid of partial_std_allocator_wrapper. - */ - -namespace allocator{ - -/* partial_std_allocator_wrapper inherits the functionality of a std - * allocator while providing a templatized ctor and other bits missing - * in some stdlib implementation or another. - */ - -template -class partial_std_allocator_wrapper:public std::allocator -{ -public: - /* Oddly enough, STLport does not define std::allocator::value_type - * when configured to work without partial template specialization. - * No harm in supplying the definition here unconditionally. - */ - - typedef Type value_type; - - partial_std_allocator_wrapper(){}; - - template - partial_std_allocator_wrapper(const partial_std_allocator_wrapper&){} - - partial_std_allocator_wrapper(const std::allocator& x): - std::allocator(x) - { - }; - -#if defined(BOOST_DINKUMWARE_STDLIB) - /* Dinkumware guys didn't provide a means to call allocate() without - * supplying a hint, in disagreement with the standard. - */ - - Type* allocate(std::size_t n,const void* hint=0) - { - std::allocator& a=*this; - return a.allocate(n,hint); - } -#endif - -}; - -/* Detects whether a given allocator belongs to a defective stdlib not - * having the required member templates. - * Note that it does not suffice to check the Boost.Config stdlib - * macros, as the user might have passed a custom, compliant allocator. - * The checks also considers partial_std_allocator_wrapper to be - * a standard defective allocator. - */ - -#if defined(BOOST_NO_STD_ALLOCATOR)&&\ - (defined(BOOST_HAS_PARTIAL_STD_ALLOCATOR)||defined(BOOST_DINKUMWARE_STDLIB)) - -template -struct is_partial_std_allocator -{ - BOOST_STATIC_CONSTANT(bool, - value= - (is_same< - std::allocator, - Allocator - >::value)|| - (is_same< - partial_std_allocator_wrapper< - BOOST_DEDUCED_TYPENAME Allocator::value_type>, - Allocator - >::value)); -}; - -#else - -template -struct is_partial_std_allocator -{ - BOOST_STATIC_CONSTANT(bool,value=false); -}; - -#endif - -/* rebind operations for defective std allocators */ - -template -struct partial_std_allocator_rebind_to -{ - typedef partial_std_allocator_wrapper type; -}; - -/* rebind operation in all other cases */ - -template -struct rebinder -{ - template - struct result - { -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename Allocator::BOOST_NESTED_TEMPLATE - rebind::other other; -#else - typedef typename std::allocator_traits::BOOST_NESTED_TEMPLATE - rebind_alloc other; -#endif - }; -}; - -template -struct compliant_allocator_rebind_to -{ - typedef typename rebinder:: - BOOST_NESTED_TEMPLATE result::other type; -}; - -/* rebind front-end */ - -template -struct rebind_to: - boost::detail::if_true< - is_partial_std_allocator::value - >::template then< - partial_std_allocator_rebind_to, - compliant_allocator_rebind_to - >::type -{ -}; - -/* allocator-independent versions of construct and destroy */ - -template -void construct(void* p,const Type& t) -{ - new (p) Type(t); -} - -#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) -/* MSVC++ issues spurious warnings about unreferencend formal parameters - * in destroy when Type is a class with trivial dtor. - */ - -#pragma warning(push) -#pragma warning(disable:4100) -#endif - -template -void destroy(const Type* p) -{ - -#if BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590)) - const_cast(p)->~Type(); -#else - p->~Type(); -#endif - -} - -#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) -#pragma warning(pop) -#endif - -} /* namespace boost::detail::allocator */ - -} /* namespace boost::detail */ - -} /* namespace boost */ - -#endif diff --git a/miniboost/boost/detail/sp_typeinfo.hpp b/miniboost/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index 4e4de55b..00000000 --- a/miniboost/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED -#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_typeinfo.hpp -// -// Deprecated, please use boost/core/typeinfo.hpp -// -// Copyright 2007 Peter Dimov -// -// Distributed under 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) - -#include - -namespace boost -{ - -namespace detail -{ - -typedef boost::core::typeinfo sp_typeinfo; - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) BOOST_CORE_TYPEID(T) - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/miniboost/boost/exception/exception.hpp b/miniboost/boost/exception/exception.hpp index d5c22c4c..ab78767c 100644 --- a/miniboost/boost/exception/exception.hpp +++ b/miniboost/boost/exception/exception.hpp @@ -165,7 +165,7 @@ boost protected: - ~error_info_container() throw() + ~error_info_container() BOOST_NOEXCEPT_OR_NOTHROW { } }; @@ -233,7 +233,7 @@ boost #ifdef __HP_aCC //On HP aCC, this protected copy constructor prevents throwing boost::exception. //On all other platforms, the same effect is achieved by the pure virtual destructor. - exception( exception const & x ) throw(): + exception( exception const & x ) BOOST_NOEXCEPT_OR_NOTHROW: data_(x.data_), throw_function_(x.throw_function_), throw_file_(x.throw_file_), @@ -242,7 +242,7 @@ boost } #endif - virtual ~exception() throw() + virtual ~exception() BOOST_NOEXCEPT_OR_NOTHROW #ifndef __HP_aCC = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors. #endif @@ -287,7 +287,7 @@ boost inline exception:: - ~exception() throw() + ~exception() BOOST_NOEXCEPT_OR_NOTHROW { } @@ -337,7 +337,7 @@ boost { } - ~error_info_injector() throw() + ~error_info_injector() BOOST_NOEXCEPT_OR_NOTHROW { } }; @@ -398,7 +398,7 @@ boost virtual void rethrow() const = 0; virtual - ~clone_base() throw() + ~clone_base() BOOST_NOEXCEPT_OR_NOTHROW { } }; @@ -445,7 +445,7 @@ boost copy_boost_exception(this,&x); } - ~clone_impl() throw() + ~clone_impl() BOOST_NOEXCEPT_OR_NOTHROW { } @@ -487,7 +487,7 @@ boost { } - ~wrapexcept() throw() + ~wrapexcept() BOOST_NOEXCEPT_OR_NOTHROW { } }; diff --git a/miniboost/boost/foreach.hpp b/miniboost/boost/foreach.hpp index eb3a50b6..a87d08df 100644 --- a/miniboost/boost/foreach.hpp +++ b/miniboost/boost/foreach.hpp @@ -30,6 +30,13 @@ #include #include +// Define a compiler generic null pointer value +#if defined(BOOST_NO_NULLPTR) +#define BOOST_FOREACH_NULL 0 +#else +#define BOOST_FOREACH_NULL nullptr +#endif + // Some compilers let us detect even const-qualified rvalues at compile-time #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) \ || defined(BOOST_MSVC) && !defined(_PREFAST_) \ @@ -909,7 +916,7 @@ rderef(auto_any_t cur, type2type *) // A sneaky way to get the type of the collection without evaluating the expression #define BOOST_FOREACH_TYPEOF(COL) \ - (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) + (true ? BOOST_FOREACH_NULL : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) // returns true_* if the type is noncopyable #define BOOST_FOREACH_IS_NONCOPYABLE(COL) \ @@ -939,7 +946,7 @@ rderef(auto_any_t cur, type2type *) (COL) # define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : boost::foreach_detail_::or_( \ + (true ? BOOST_FOREACH_NULL : boost::foreach_detail_::or_( \ BOOST_FOREACH_IS_RVALUE(COL) \ , BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL))) @@ -962,11 +969,11 @@ rderef(auto_any_t cur, type2type *) // If the type happens to be a lightweight proxy, always make a copy. # define BOOST_FOREACH_SHOULD_COPY(COL) \ (boost::foreach_detail_::should_copy_impl( \ - true ? 0 : boost::foreach_detail_::or_( \ + true ? BOOST_FOREACH_NULL : boost::foreach_detail_::or_( \ boost::foreach_detail_::is_array_(COL) \ , BOOST_FOREACH_IS_NONCOPYABLE(COL) \ , boost::foreach_detail_::not_(boost::foreach_detail_::is_const_(COL))) \ - , true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \ + , true ? BOOST_FOREACH_NULL : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \ , &BOOST_FOREACH_ID(_foreach_is_rvalue))) #elif !defined(BOOST_FOREACH_NO_RVALUE_DETECTION) @@ -985,7 +992,7 @@ rderef(auto_any_t cur, type2type *) // Determine whether the collection expression is an lvalue or an rvalue. // NOTE: this gets the answer wrong for const rvalues. # define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : boost::foreach_detail_::or_( \ + (true ? BOOST_FOREACH_NULL : boost::foreach_detail_::or_( \ boost::foreach_detail_::is_rvalue_((COL), 0) \ , BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL))) @@ -1004,7 +1011,7 @@ rderef(auto_any_t cur, type2type *) // Can't use rvalues with BOOST_FOREACH (unless they are lightweight proxies) # define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL)) + (true ? BOOST_FOREACH_NULL : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL)) #endif diff --git a/miniboost/boost/iterator/detail/facade_iterator_category.hpp b/miniboost/boost/iterator/detail/facade_iterator_category.hpp index 67fdf446..6db45e45 100644 --- a/miniboost/boost/iterator/detail/facade_iterator_category.hpp +++ b/miniboost/boost/iterator/detail/facade_iterator_category.hpp @@ -4,6 +4,8 @@ #ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP # define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP +# include + # include # include // used in iterator_tag inheritance logic @@ -33,8 +35,7 @@ namespace boost { namespace iterators { -// forward declaration -struct use_default; +using boost::use_default; namespace detail { diff --git a/miniboost/boost/iterator/iterator_adaptor.hpp b/miniboost/boost/iterator/iterator_adaptor.hpp index f803fc65..db1c4daa 100644 --- a/miniboost/boost/iterator/iterator_adaptor.hpp +++ b/miniboost/boost/iterator/iterator_adaptor.hpp @@ -9,6 +9,8 @@ #include +#include + #include #include #include @@ -35,12 +37,10 @@ namespace iterators { // Used as a default template argument internally, merely to // indicate "use the default", this can also be passed by users // explicitly in order to specify that the default should be used. - struct use_default; + using boost::use_default; } // namespace iterators -using iterators::use_default; - // the incompleteness of use_default causes massive problems for // is_convertible (naturally). This workaround is fortunately not // needed for vc6/vc7. diff --git a/miniboost/boost/iterator/iterator_facade.hpp b/miniboost/boost/iterator/iterator_facade.hpp index 225c53a2..b43e618f 100644 --- a/miniboost/boost/iterator/iterator_facade.hpp +++ b/miniboost/boost/iterator/iterator_facade.hpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include diff --git a/miniboost/boost/move/detail/meta_utils_core.hpp b/miniboost/boost/move/detail/meta_utils_core.hpp index 40dbb6ef..4e116738 100644 --- a/miniboost/boost/move/detail/meta_utils_core.hpp +++ b/miniboost/boost/move/detail/meta_utils_core.hpp @@ -27,6 +27,9 @@ namespace boost { namespace move_detail { +template +struct voider { typedef void type; }; + ////////////////////////////////////// // if_c ////////////////////////////////////// @@ -52,7 +55,9 @@ struct if_ : if_c<0 != T1::value, T2, T3> ////////////////////////////////////// // enable_if_c ////////////////////////////////////// -template +struct enable_if_nat{}; + +template struct enable_if_c { typedef T type; @@ -64,13 +69,13 @@ struct enable_if_c {}; ////////////////////////////////////// // enable_if ////////////////////////////////////// -template +template struct enable_if : enable_if_c {}; ////////////////////////////////////// // disable_if_c ////////////////////////////////////// -template +template struct disable_if_c : enable_if_c {}; @@ -78,7 +83,7 @@ struct disable_if_c ////////////////////////////////////// // disable_if ////////////////////////////////////// -template +template struct disable_if : enable_if_c {}; ////////////////////////////////////// @@ -117,13 +122,13 @@ struct is_same ////////////////////////////////////// // enable_if_same ////////////////////////////////////// -template +template struct enable_if_same : enable_if, R> {}; ////////////////////////////////////// // disable_if_same ////////////////////////////////////// -template +template struct disable_if_same : disable_if, R> {}; } //namespace move_detail { diff --git a/miniboost/boost/mpl/if.hpp b/miniboost/boost/mpl/if.hpp index b6bdf6c6..3b0ae192 100644 --- a/miniboost/boost/mpl/if.hpp +++ b/miniboost/boost/mpl/if.hpp @@ -46,7 +46,7 @@ struct if_c }; // agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars -// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959 +// (and possibly MWCW < 8.0); see https://lists.boost.org/Archives/boost/2004/09/71383.php template< typename BOOST_MPL_AUX_NA_PARAM(T1) , typename BOOST_MPL_AUX_NA_PARAM(T2) diff --git a/miniboost/boost/multi_index/detail/allocator_traits.hpp b/miniboost/boost/multi_index/detail/allocator_traits.hpp new file mode 100644 index 00000000..63fce6a4 --- /dev/null +++ b/miniboost/boost/multi_index/detail/allocator_traits.hpp @@ -0,0 +1,143 @@ +/* Copyright 2003-2018 Joaquin M Lopez Munoz. + * Distributed under 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/multi_index for library home page. + */ + +#ifndef BOOST_MULTI_INDEX_DETAIL_ALLOCATOR_TRAITS_HPP +#define BOOST_MULTI_INDEX_DETAIL_ALLOCATOR_TRAITS_HPP + +#if defined(_MSC_VER) +#pragma once +#endif + +#include /* keep it first to prevent nasty warns in MSVC */ + +#if !defined(BOOST_NO_CXX11_ALLOCATOR) +#include +#else +#include +#include +#include +#include +#include +#endif + +namespace boost{ + +namespace multi_index{ + +namespace detail{ + +/* poor man's replacement of std::allocator_traits */ + +#if !defined(BOOST_NO_CXX11_ALLOCATOR) + +template +struct allocator_traits:std::allocator_traits +{ + /* wrap std::allocator_traits alias templates for use in C++03 codebase */ + + typedef std::allocator_traits super; + + template + struct rebind_alloc + { + typedef typename super::template rebind_alloc type; + }; + + template + struct rebind_traits + { + typedef typename super::template rebind_traits type; + }; +}; + +#else + +/* not a full std::allocator_traits rewrite (not needed) */ + +template +struct allocator_traits +{ + typedef Allocator allocator_type; + typedef typename Allocator::value_type value_type; + typedef typename Allocator::pointer pointer; + typedef typename Allocator::const_pointer const_pointer; + + /* [const_]void_pointer not provided as boost::pointer_traits's + * rebind_to has been seen to fail with things like + * boost::interprocess::offset_ptr in relatively old environments. + */ + + typedef typename Allocator::difference_type difference_type; + typedef typename Allocator::size_type size_type; + + template + struct rebind_alloc + { + typedef typename Allocator::template rebind::other type; + }; + + template + struct rebind_traits + { + typedef allocator_traits::type> type; + }; + + static pointer allocate(Allocator& a,size_type n){return a.allocate(n);} + static pointer allocate(Allocator& a,size_type n,const_pointer p) + /* should've been const_void_pointer p */ + {return a.allocate(n,p);} + static void deallocate(Allocator& a,pointer p,size_type n) + {a.deallocate(p,n);} + template + static void construct(Allocator&,T* p,const T& x) + {::new (static_cast(p)) T(x);} + template + static void construct(Allocator&,T* p,BOOST_RV_REF(T) x) + {::new (static_cast(p)) T(boost::move(x));} + + template + static void construct(Allocator&,T* p,BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK) + { + vartempl_placement_new(p,BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); + } + +#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) +/* MSVC issues spurious warnings about unreferencend formal parameters in + * destroy when T is a class with trivial dtor. + */ + +#pragma warning(push) +#pragma warning(disable:4100) +#endif + + template + static void destroy(Allocator&,T* p){p->~T();} + +#if BOOST_WORKAROUND(BOOST_MSVC,BOOST_TESTED_AT(1500)) +#pragma warning(pop) +#endif + + static size_type max_size(Allocator& a)BOOST_NOEXCEPT{return a.max_size();} +}; + +#endif + +template +struct rebind_alloc_for +{ + typedef typename allocator_traits:: + template rebind_alloc::type type; +}; + +} /* namespace multi_index::detail */ + +} /* namespace multi_index */ + +} /* namespace boost */ + +#endif diff --git a/miniboost/boost/multi_index/detail/auto_space.hpp b/miniboost/boost/multi_index/detail/auto_space.hpp index 911f810f..ca19b320 100644 --- a/miniboost/boost/multi_index/detail/auto_space.hpp +++ b/miniboost/boost/multi_index/detail/auto_space.hpp @@ -15,8 +15,8 @@ #include /* keep it first to prevent nasty warns in MSVC */ #include -#include #include +#include #include #include @@ -45,34 +45,18 @@ namespace detail{ template > struct auto_space:private noncopyable { - typedef typename boost::detail::allocator::rebind_to< - Allocator,T - >::type allocator; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename allocator::pointer pointer; -#else - typedef std::allocator_traits traits; - typedef typename traits::pointer pointer; -#endif + typedef typename rebind_alloc_for< + Allocator,T> + ::type allocator; + typedef allocator_traits alloc_traits; + typedef typename alloc_traits::pointer pointer; + typedef typename alloc_traits::size_type size_type; - explicit auto_space(const Allocator& al=Allocator(),std::size_t n=1): - al_(al),n_(n), -#ifdef BOOST_NO_CXX11_ALLOCATOR - data_(n_?al_.allocate(n_):pointer(0)) -#else - data_(n_?traits::allocate(al_,n_):pointer(0)) -#endif + explicit auto_space(const Allocator& al=Allocator(),size_type n=1): + al_(al),n_(n),data_(n_?alloc_traits::allocate(al_,n_):pointer(0)) {} - ~auto_space() - { - if(n_) -#ifdef BOOST_NO_CXX11_ALLOCATOR - al_.deallocate(data_,n_); -#else - traits::deallocate(al_,data_,n_); -#endif - } + ~auto_space(){if(n_)alloc_traits::deallocate(al_,data_,n_);} Allocator get_allocator()const{return al_;} @@ -86,9 +70,9 @@ struct auto_space:private noncopyable } private: - allocator al_; - std::size_t n_; - pointer data_; + allocator al_; + size_type n_; + pointer data_; }; template diff --git a/miniboost/boost/multi_index/detail/bidir_node_iterator.hpp b/miniboost/boost/multi_index/detail/bidir_node_iterator.hpp index 9be5ec84..adfb77de 100644 --- a/miniboost/boost/multi_index/detail/bidir_node_iterator.hpp +++ b/miniboost/boost/multi_index/detail/bidir_node_iterator.hpp @@ -1,4 +1,4 @@ -/* Copyright 2003-2014 Joaquin M Lopez Munoz. +/* Copyright 2003-2018 Joaquin M Lopez Munoz. * Distributed under 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) @@ -36,7 +36,7 @@ class bidir_node_iterator: public bidirectional_iterator_helper< bidir_node_iterator, typename Node::value_type, - std::ptrdiff_t, + typename Node::difference_type, const typename Node::value_type*, const typename Node::value_type&> { diff --git a/miniboost/boost/multi_index/detail/copy_map.hpp b/miniboost/boost/multi_index/detail/copy_map.hpp index 1ab2bf00..d5806ad3 100644 --- a/miniboost/boost/multi_index/detail/copy_map.hpp +++ b/miniboost/boost/multi_index/detail/copy_map.hpp @@ -17,12 +17,11 @@ #include #include #include +#include #include #include #include -#include #include -#include namespace boost{ @@ -59,11 +58,18 @@ struct copy_map_entry template class copy_map:private noncopyable { + typedef typename rebind_alloc_for< + Allocator,Node + >::type allocator_type; + typedef allocator_traits alloc_traits; + typedef typename alloc_traits::pointer pointer; + public: - typedef const copy_map_entry* const_iterator; + typedef const copy_map_entry* const_iterator; + typedef typename alloc_traits::size_type size_type; copy_map( - const Allocator& al,std::size_t size,Node* header_org,Node* header_cpy): + const Allocator& al,size_type size,Node* header_org,Node* header_cpy): al_(al),size_(size),spc(al_,size_),n(0), header_org_(header_org),header_cpy_(header_cpy),released(false) {} @@ -71,9 +77,9 @@ public: ~copy_map() { if(!released){ - for(std::size_t i=0;isecond->value())); + for(size_type i=0;isecond->value())); deallocate((spc.data()+i)->second); } } @@ -87,8 +93,8 @@ public: (spc.data()+n)->first=node; (spc.data()+n)->second=raw_ptr(allocate()); BOOST_TRY{ - boost::detail::allocator::construct( - boost::addressof((spc.data()+n)->second->value()),node->value()); + alloc_traits::construct( + al_,boost::addressof((spc.data()+n)->second->value()),node->value()); } BOOST_CATCH(...){ deallocate((spc.data()+n)->second); @@ -117,40 +123,22 @@ public: } private: - typedef typename boost::detail::allocator::rebind_to< - Allocator,Node - >::type allocator_type; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename allocator_type::pointer allocator_pointer; -#else - typedef std::allocator_traits allocator_traits; - typedef typename allocator_traits::pointer allocator_pointer; -#endif + allocator_type al_; + size_type size_; + auto_space,Allocator> spc; + size_type n; + Node* header_org_; + Node* header_cpy_; + bool released; - allocator_type al_; - std::size_t size_; - auto_space,Allocator> spc; - std::size_t n; - Node* header_org_; - Node* header_cpy_; - bool released; - - allocator_pointer allocate() + pointer allocate() { -#ifdef BOOST_NO_CXX11_ALLOCATOR - return al_.allocate(1); -#else - return allocator_traits::allocate(al_,1); -#endif + return alloc_traits::allocate(al_,1); } void deallocate(Node* node) { -#ifdef BOOST_NO_CXX11_ALLOCATOR - al_.deallocate(static_cast(node),1); -#else - allocator_traits::deallocate(al_,static_cast(node),1); -#endif + alloc_traits::deallocate(al_,static_cast(node),1); } }; diff --git a/miniboost/boost/multi_index/detail/duplicates_iterator.hpp b/miniboost/boost/multi_index/detail/duplicates_iterator.hpp index cbebf264..bfba2320 100644 --- a/miniboost/boost/multi_index/detail/duplicates_iterator.hpp +++ b/miniboost/boost/multi_index/detail/duplicates_iterator.hpp @@ -1,4 +1,4 @@ -/* Copyright 2003-2013 Joaquin M Lopez Munoz. +/* Copyright 2003-2018 Joaquin M Lopez Munoz. * Distributed under 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) @@ -14,7 +14,6 @@ #endif #include /* keep it first to prevent nasty warns in MSVC */ -#include #include namespace boost{ @@ -32,7 +31,7 @@ class duplicates_iterator { public: typedef typename Node::value_type value_type; - typedef std::ptrdiff_t difference_type; + typedef typename Node::difference_type difference_type; typedef const typename Node::value_type* pointer; typedef const typename Node::value_type& reference; typedef std::forward_iterator_tag iterator_category; diff --git a/miniboost/boost/multi_index/detail/index_base.hpp b/miniboost/boost/multi_index/detail/index_base.hpp index 22cf0f14..1748a8f8 100644 --- a/miniboost/boost/multi_index/detail/index_base.hpp +++ b/miniboost/boost/multi_index/detail/index_base.hpp @@ -1,4 +1,4 @@ -/* Copyright 2003-2017 Joaquin M Lopez Munoz. +/* Copyright 2003-2018 Joaquin M Lopez Munoz. * Distributed under 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) @@ -15,12 +15,12 @@ #include /* keep it first to prevent nasty warns in MSVC */ #include -#include #include #include #include -#include +#include #include +#include #include #include #include @@ -62,10 +62,8 @@ protected: typedef multi_index_container< Value,IndexSpecifierList,Allocator> final_type; typedef tuples::null_type ctor_args_list; - typedef typename - boost::detail::allocator::rebind_to< - Allocator, - typename Allocator::value_type + typedef typename rebind_alloc_for< + Allocator,typename Allocator::value_type >::type final_allocator_type; typedef mpl::vector0<> index_type_list; typedef mpl::vector0<> iterator_type_list; @@ -86,6 +84,8 @@ protected: private: typedef Value value_type; + typedef allocator_traits alloc_traits; + typedef typename alloc_traits::size_type size_type; protected: explicit index_base(const ctor_args_list&,const Allocator&){} @@ -103,7 +103,7 @@ protected: { x=final().allocate_node(); BOOST_TRY{ - boost::detail::allocator::construct(boost::addressof(x->value()),v); + final().construct_value(x,v); } BOOST_CATCH(...){ final().deallocate_node(x); @@ -117,15 +117,7 @@ protected: { x=final().allocate_node(); BOOST_TRY{ - /* This shoud have used a modified, T&&-compatible version of - * boost::detail::allocator::construct, but - * is too old and venerable to - * mess with; besides, it is a general internal utility and the imperfect - * perfect forwarding emulation of Boost.Move might break other libs. - */ - - new (boost::addressof(x->value())) - value_type(boost::move(const_cast(v))); + final().construct_value(x,boost::move(const_cast(v))); } BOOST_CATCH(...){ final().deallocate_node(x); @@ -160,12 +152,12 @@ protected: void erase_(node_type* x) { - boost::detail::allocator::destroy(boost::addressof(x->value())); + final().destroy_value(static_cast(x)); } void delete_node_(node_type* x) { - boost::detail::allocator::destroy(boost::addressof(x->value())); + final().destroy_value(static_cast(x)); } void clear_(){} @@ -215,9 +207,9 @@ protected: final_node_type* final_header()const{return final().header();} - bool final_empty_()const{return final().empty_();} - std::size_t final_size_()const{return final().size_();} - std::size_t final_max_size_()const{return final().max_size_();} + bool final_empty_()const{return final().empty_();} + size_type final_size_()const{return final().size_();} + size_type final_max_size_()const{return final().max_size_();} std::pair final_insert_(const value_type& x) {return final().insert_(x);} diff --git a/miniboost/boost/multi_index/detail/ord_index_impl.hpp b/miniboost/boost/multi_index/detail/ord_index_impl.hpp index 1093b87c..23adeeb0 100644 --- a/miniboost/boost/multi_index/detail/ord_index_impl.hpp +++ b/miniboost/boost/multi_index/detail/ord_index_impl.hpp @@ -1,4 +1,4 @@ -/* Copyright 2003-2018 Joaquin M Lopez Munoz. +/* Copyright 2003-2019 Joaquin M Lopez Munoz. * Distributed under 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) @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -69,7 +70,6 @@ #include #include #include -#include #if !defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) #include @@ -163,13 +163,8 @@ public: value_type,KeyFromValue,Compare> value_compare; typedef tuple ctor_args; typedef typename super::final_allocator_type allocator_type; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename allocator_type::reference reference; - typedef typename allocator_type::const_reference const_reference; -#else typedef value_type& reference; typedef const value_type& const_reference; -#endif #if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) typedef safe_mode::safe_iterator< @@ -181,16 +176,14 @@ public: typedef iterator const_iterator; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename allocator_type::pointer pointer; - typedef typename allocator_type::const_pointer const_pointer; -#else - typedef std::allocator_traits allocator_traits; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; -#endif +private: + typedef allocator_traits alloc_traits; + +public: + typedef typename alloc_traits::size_type size_type; + typedef typename alloc_traits::difference_type difference_type; + typedef typename alloc_traits::pointer pointer; + typedef typename alloc_traits::const_pointer const_pointer; typedef typename boost::reverse_iterator reverse_iterator; typedef typename @@ -527,7 +520,7 @@ public: size_type count(const CompatibleKey& x,const CompatibleCompare& comp)const { std::pair p=equal_range(x,comp); - size_type n=std::distance(p.first,p.second); + size_type n=static_cast(std::distance(p.first,p.second)); return n; } @@ -1434,10 +1427,10 @@ protected: const ctor_args_list& args_list,const allocator_type& al): super(args_list,al){} - ordered_index(const ordered_index& x):super(x){}; + ordered_index(const ordered_index& x):super(x){} ordered_index(const ordered_index& x,do_not_copy_elements_tag): - super(x,do_not_copy_elements_tag()){}; + super(x,do_not_copy_elements_tag()){} }; /* comparison */ diff --git a/miniboost/boost/multi_index/detail/ord_index_node.hpp b/miniboost/boost/multi_index/detail/ord_index_node.hpp index 09627fd1..0a816c5f 100644 --- a/miniboost/boost/multi_index/detail/ord_index_node.hpp +++ b/miniboost/boost/multi_index/detail/ord_index_node.hpp @@ -1,4 +1,4 @@ -/* Copyright 2003-2018 Joaquin M Lopez Munoz. +/* Copyright 2003-2019 Joaquin M Lopez Munoz. * Distributed under 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) @@ -42,8 +42,7 @@ #include /* keep it first to prevent nasty warns in MSVC */ #include -#include -#include +#include #include #if !defined(BOOST_MULTI_INDEX_DISABLE_COMPRESSED_ORDERED_INDEX_NODES) @@ -71,31 +70,29 @@ struct ordered_index_node_impl; /* fwd decl. */ template struct ordered_index_node_traits { - typedef typename - boost::detail::allocator::rebind_to< + typedef typename rebind_alloc_for< Allocator, ordered_index_node_impl >::type allocator; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename allocator::pointer pointer; - typedef typename allocator::const_pointer const_pointer; -#else - typedef std::allocator_traits allocator_traits; - typedef typename allocator_traits::pointer pointer; - typedef typename allocator_traits::const_pointer const_pointer; -#endif + typedef allocator_traits alloc_traits; + typedef typename alloc_traits::pointer pointer; + typedef typename alloc_traits::const_pointer const_pointer; + typedef typename alloc_traits::difference_type difference_type; + typedef typename alloc_traits::size_type size_type; }; template struct ordered_index_node_std_base { typedef ordered_index_node_traits< - AugmentPolicy,Allocator> node_traits; - typedef typename node_traits::allocator node_allocator; - typedef typename node_traits::pointer pointer; - typedef typename node_traits::const_pointer const_pointer; - typedef ordered_index_color& color_ref; - typedef pointer& parent_ref; + AugmentPolicy,Allocator> node_traits; + typedef typename node_traits::allocator node_allocator; + typedef typename node_traits::pointer pointer; + typedef typename node_traits::const_pointer const_pointer; + typedef typename node_traits::difference_type difference_type; + typedef typename node_traits::size_type size_type; + typedef ordered_index_color& color_ref; + typedef pointer& parent_ref; ordered_index_color& color(){return color_;} ordered_index_color color()const{return color_;} @@ -134,14 +131,19 @@ private: template struct ordered_index_node_compressed_base { + typedef ordered_index_node_traits< + AugmentPolicy,Allocator> node_traits; typedef ordered_index_node_impl< - AugmentPolicy,Allocator>* pointer; + AugmentPolicy,Allocator>* pointer; typedef const ordered_index_node_impl< - AugmentPolicy,Allocator>* const_pointer; + AugmentPolicy,Allocator>* const_pointer; + typedef typename node_traits::difference_type difference_type; + typedef typename node_traits::size_type size_type; struct color_ref { color_ref(uintptr_type* r_):r(r_){} + color_ref(const color_ref& x):r(x.r){} operator ordered_index_color()const { @@ -167,6 +169,7 @@ struct ordered_index_node_compressed_base struct parent_ref { parent_ref(uintptr_type* r_):r(r_){} + parent_ref(const parent_ref& x):r(x.r){} operator pointer()const { @@ -577,7 +580,7 @@ template struct ordered_index_node_trampoline: ordered_index_node_impl< AugmentPolicy, - typename boost::detail::allocator::rebind_to< + typename rebind_alloc_for< typename Super::allocator_type, char >::type @@ -585,7 +588,7 @@ struct ordered_index_node_trampoline: { typedef ordered_index_node_impl< AugmentPolicy, - typename boost::detail::allocator::rebind_to< + typename rebind_alloc_for< typename Super::allocator_type, char >::type @@ -600,11 +603,13 @@ private: typedef ordered_index_node_trampoline trampoline; public: - typedef typename trampoline::impl_type impl_type; - typedef typename trampoline::color_ref impl_color_ref; - typedef typename trampoline::parent_ref impl_parent_ref; - typedef typename trampoline::pointer impl_pointer; - typedef typename trampoline::const_pointer const_impl_pointer; + typedef typename trampoline::impl_type impl_type; + typedef typename trampoline::color_ref impl_color_ref; + typedef typename trampoline::parent_ref impl_parent_ref; + typedef typename trampoline::pointer impl_pointer; + typedef typename trampoline::const_pointer const_impl_pointer; + typedef typename trampoline::difference_type difference_type; + typedef typename trampoline::size_type size_type; impl_color_ref color(){return trampoline::color();} ordered_index_color color()const{return trampoline::color();} diff --git a/miniboost/boost/multi_index_container.hpp b/miniboost/boost/multi_index_container.hpp index b50bdbc9..72e42332 100644 --- a/miniboost/boost/multi_index_container.hpp +++ b/miniboost/boost/multi_index_container.hpp @@ -17,12 +17,11 @@ #include /* keep it first to prevent nasty warns in MSVC */ #include -#include #include -#include #include #include #include +#include #include #include #include @@ -33,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -85,25 +85,20 @@ namespace multi_index{ template class multi_index_container: private ::boost::base_from_member< - typename boost::detail::allocator::rebind_to< + typename detail::rebind_alloc_for< Allocator, typename detail::multi_index_node_type< Value,IndexSpecifierList,Allocator>::type - >::type>, + >::type + >, BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS detail::header_holder< -#ifndef BOOST_NO_CXX11_ALLOCATOR - typename std::allocator_traits< -#endif - typename boost::detail::allocator::rebind_to< + typename detail::allocator_traits< + typename detail::rebind_alloc_for< Allocator, typename detail::multi_index_node_type< Value,IndexSpecifierList,Allocator>::type >::type -#ifdef BOOST_NO_CXX11_ALLOCATOR - ::pointer, -#else >::pointer, -#endif multi_index_container >, public detail::multi_index_base_type< Value,IndexSpecifierList,Allocator>::type @@ -129,22 +124,17 @@ private: typedef typename detail::multi_index_base_type< Value,IndexSpecifierList,Allocator>::type super; - typedef typename - boost::detail::allocator::rebind_to< + typedef typename detail::rebind_alloc_for< Allocator, typename super::node_type - >::type node_allocator; -#ifdef BOOST_NO_CXX11_ALLOCATOR - typedef typename node_allocator::pointer node_pointer; -#else - typedef std::allocator_traits node_allocator_traits; - typedef typename node_allocator_traits::pointer node_pointer; -#endif + >::type node_allocator; + typedef detail::allocator_traits node_alloc_traits; + typedef typename node_alloc_traits::pointer node_pointer; typedef ::boost::base_from_member< - node_allocator> bfm_allocator; + node_allocator> bfm_allocator; typedef detail::header_holder< node_pointer, - multi_index_container> bfm_header; + multi_index_container> bfm_header; public: /* All types are inherited from super, a few are explicitly @@ -160,6 +150,7 @@ public: typedef typename super::const_iterator_type_list const_iterator_type_list; typedef typename super::value_type value_type; typedef typename super::final_allocator_type allocator_type; + typedef typename super::size_type size_type; typedef typename super::iterator iterator; typedef typename super::const_iterator const_iterator; @@ -547,20 +538,34 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: node_type* allocate_node() { -#ifdef BOOST_NO_CXX11_ALLOCATOR - return &*bfm_allocator::member.allocate(1); -#else - return &*node_allocator_traits::allocate(bfm_allocator::member,1); -#endif + return &*node_alloc_traits::allocate(bfm_allocator::member,1); } void deallocate_node(node_type* x) { -#ifdef BOOST_NO_CXX11_ALLOCATOR - bfm_allocator::member.deallocate(static_cast(x),1); -#else - node_allocator_traits::deallocate(bfm_allocator::member,static_cast(x),1); -#endif + node_alloc_traits::deallocate( + bfm_allocator::member,static_cast(x),1); + } + + void construct_value(node_type* x,const Value& v) + { + node_alloc_traits::construct( + bfm_allocator::member,boost::addressof(x->value()),v); + } + + void construct_value(node_type* x,BOOST_RV_REF(Value) v) + { + node_alloc_traits::construct( + bfm_allocator::member,boost::addressof(x->value()),boost::move(v)); + } + + BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG( + void,construct_value,vartempl_construct_value_impl,node_type*,x) + + void destroy_value(node_type* x) + { + node_alloc_traits::destroy( + bfm_allocator::member,boost::addressof(x->value())); } bool empty_()const @@ -568,14 +573,14 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: return node_count==0; } - std::size_t size_()const + size_type size_()const { return node_count; } - std::size_t max_size_()const + size_type max_size_()const { - return static_cast(-1); + return static_cast(-1); } template @@ -607,7 +612,7 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: { node_type* x=allocate_node(); BOOST_TRY{ - new(boost::addressof(x->value())) value_type(t); + construct_value(x,t); BOOST_TRY{ node_type* res=super::insert_(x->value(),x,detail::emplaced_tag()); if(res==x){ @@ -615,13 +620,13 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: return std::pair(res,true); } else{ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); deallocate_node(x); return std::pair(res,false); } } BOOST_CATCH(...){ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); BOOST_RETHROW; } BOOST_CATCH_END @@ -649,8 +654,7 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: { node_type* x=allocate_node(); BOOST_TRY{ - detail::vartempl_placement_new( - boost::addressof(x->value()),BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); + construct_value(x,BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); BOOST_TRY{ node_type* res=super::insert_(x->value(),x,detail::emplaced_tag()); if(res==x){ @@ -658,13 +662,13 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: return std::pair(res,true); } else{ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); deallocate_node(x); return std::pair(res,false); } } BOOST_CATCH(...){ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); BOOST_RETHROW; } BOOST_CATCH_END @@ -707,7 +711,7 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: { node_type* x=allocate_node(); BOOST_TRY{ - new(boost::addressof(x->value())) value_type(t); + construct_value(x,t); BOOST_TRY{ node_type* res=super::insert_( x->value(),position,x,detail::emplaced_tag()); @@ -716,13 +720,13 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: return std::pair(res,true); } else{ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); deallocate_node(x); return std::pair(res,false); } } BOOST_CATCH(...){ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); BOOST_RETHROW; } BOOST_CATCH_END @@ -753,8 +757,7 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: { node_type* x=allocate_node(); BOOST_TRY{ - detail::vartempl_placement_new( - boost::addressof(x->value()),BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); + construct_value(x,BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); BOOST_TRY{ node_type* res=super::insert_( x->value(),position,x,detail::emplaced_tag()); @@ -763,13 +766,13 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: return std::pair(res,true); } else{ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); deallocate_node(x); return std::pair(res,false); } } BOOST_CATCH(...){ - boost::detail::allocator::destroy(boost::addressof(x->value())); + destroy_value(x); BOOST_RETHROW; } BOOST_CATCH_END @@ -995,7 +998,16 @@ BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: #endif private: - std::size_t node_count; + template + void vartempl_construct_value_impl( + node_type* x,BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK) + { + node_alloc_traits::construct( + bfm_allocator::member,boost::addressof(x->value()), + BOOST_MULTI_INDEX_FORWARD_PARAM_PACK); + } + + size_type node_count; #if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ BOOST_WORKAROUND(__MWERKS__,<=0x3003) diff --git a/miniboost/boost/predef/architecture/arm.h b/miniboost/boost/predef/architecture/arm.h index 96f89c86..45a0a8e3 100644 --- a/miniboost/boost/predef/architecture/arm.h +++ b/miniboost/boost/predef/architecture/arm.h @@ -1,5 +1,5 @@ /* -Copyright Rene Rivera 2008-2015 +Copyright Rene Rivera 2008-2019 Copyright Franz Detro 2014 Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. @@ -21,32 +21,68 @@ http://www.boost.org/LICENSE_1_0.txt) [table [[__predef_symbol__] [__predef_version__]] - [[`__arm__`] [__predef_detection__]] - [[`__arm64`] [__predef_detection__]] - [[`__thumb__`] [__predef_detection__]] + [[`__ARM_ARCH`] [__predef_detection__]] [[`__TARGET_ARCH_ARM`] [__predef_detection__]] [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] [[`_M_ARM`] [__predef_detection__]] + [[`__arm__`] [__predef_detection__]] + [[`__arm64`] [__predef_detection__]] + [[`__thumb__`] [__predef_detection__]] [[`_M_ARM64`] [__predef_detection__]] + [[`__aarch64__`] [__predef_detection__]] + [[`__AARCH64EL__`] [__predef_detection__]] + [[`__ARM_ARCH_7__`] [__predef_detection__]] + [[`__ARM_ARCH_7A__`] [__predef_detection__]] + [[`__ARM_ARCH_7R__`] [__predef_detection__]] + [[`__ARM_ARCH_7M__`] [__predef_detection__]] + [[`__ARM_ARCH_6K__`] [__predef_detection__]] + [[`__ARM_ARCH_6Z__`] [__predef_detection__]] + [[`__ARM_ARCH_6KZ__`] [__predef_detection__]] + [[`__ARM_ARCH_6T2__`] [__predef_detection__]] + [[`__ARM_ARCH_5TE__`] [__predef_detection__]] + [[`__ARM_ARCH_5TEJ__`] [__predef_detection__]] + [[`__ARM_ARCH_4T__`] [__predef_detection__]] + [[`__ARM_ARCH_4__`] [__predef_detection__]] - [[`__arm64`] [8.0.0]] + [[`__ARM_ARCH`] [V.0.0]] [[`__TARGET_ARCH_ARM`] [V.0.0]] [[`__TARGET_ARCH_THUMB`] [V.0.0]] - [[`__ARM_ARCH`] [V.0.0]] [[`_M_ARM`] [V.0.0]] + [[`__arm64`] [8.0.0]] [[`_M_ARM64`] [8.0.0]] + [[`__aarch64__`] [8.0.0]] + [[`__AARCH64EL__`] [8.0.0]] + [[`__ARM_ARCH_7__`] [7.0.0]] + [[`__ARM_ARCH_7A__`] [7.0.0]] + [[`__ARM_ARCH_7R__`] [7.0.0]] + [[`__ARM_ARCH_7M__`] [7.0.0]] + [[`__ARM_ARCH_6K__`] [6.0.0]] + [[`__ARM_ARCH_6Z__`] [6.0.0]] + [[`__ARM_ARCH_6KZ__`] [6.0.0]] + [[`__ARM_ARCH_6T2__`] [6.0.0]] + [[`__ARM_ARCH_5TE__`] [5.0.0]] + [[`__ARM_ARCH_5TEJ__`] [5.0.0]] + [[`__ARM_ARCH_4T__`] [4.0.0]] + [[`__ARM_ARCH_4__`] [4.0.0]] ] */ #define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE -#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ - defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ - defined(__ARM_ARCH) || \ - defined(_M_ARM) || defined(_M_ARM64) +#if \ + defined(__ARM_ARCH) || defined(__TARGET_ARCH_ARM) || \ + defined(__TARGET_ARCH_THUMB) || defined(_M_ARM) || \ + defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ + defined(_M_ARM64) || defined(__aarch64__) || defined(__AARCH64EL__) || \ + defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ + defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \ + defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ + defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) || \ + defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) || \ + defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__) # undef BOOST_ARCH_ARM -# if !defined(BOOST_ARCH_ARM) && defined(__arm64) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) +# if !defined(BOOST_ARCH_ARM) && defined(__ARM_ARCH) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__ARM_ARCH,0,0) # endif # if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM) # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) @@ -54,15 +90,32 @@ http://www.boost.org/LICENSE_1_0.txt) # if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) # endif -# if !defined(BOOST_ARCH_ARM) && defined(__ARM_ARCH) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__ARM_ARCH,0,0) -# endif -# if !defined(BOOST_ARCH_ARM) && defined(_M_ARM64) -# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) -# endif # if !defined(BOOST_ARCH_ARM) && defined(_M_ARM) # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(_M_ARM,0,0) # endif +# if !defined(BOOST_ARCH_ARM) && ( \ + defined(__arm64) || defined(_M_ARM64) || defined(__aarch64__) || \ + defined(__AARCH64EL__) ) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(8,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) && ( \ + defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ + defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) ) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(7,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) && ( \ + defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ + defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__) ) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(6,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) && ( \ + defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) ) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(5,0,0) +# endif +# if !defined(BOOST_ARCH_ARM) && ( \ + defined(__ARM_ARCH_4T__) || defined(__ARM_ARCH_4__) ) +# define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(4,0,0) +# endif # if !defined(BOOST_ARCH_ARM) # define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE # endif diff --git a/miniboost/boost/predef/os.h b/miniboost/boost/predef/os.h index bedf99ec..9a9f9c68 100644 --- a/miniboost/boost/predef/os.h +++ b/miniboost/boost/predef/os.h @@ -13,7 +13,6 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include -#include #include #include #include @@ -30,4 +29,6 @@ http://www.boost.org/LICENSE_1_0.txt) #include #include +#include + #endif diff --git a/miniboost/boost/predef/os/android.h b/miniboost/boost/predef/os/android.h index 125dbded..564423f3 100644 --- a/miniboost/boost/predef/os/android.h +++ b/miniboost/boost/predef/os/android.h @@ -14,6 +14,9 @@ http://www.boost.org/LICENSE_1_0.txt) /*` [heading `BOOST_OS_ANDROID`] +NOTE: `BOOST_OS_ANDROID` is deprecated, and will be removed in a following release. +Please use `BOOST_PLAT_ANDROID` instead. + [@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system. [table diff --git a/miniboost/boost/predef/os/bsd.h b/miniboost/boost/predef/os/bsd.h index fad9aed7..81d2c08b 100644 --- a/miniboost/boost/predef/os/bsd.h +++ b/miniboost/boost/predef/os/bsd.h @@ -89,7 +89,7 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #define BOOST_OS_BSD_NAME "BSD" -#else +#endif #include #include @@ -97,7 +97,5 @@ of BSD. If the above variants is detected the corresponding macro is also set.] #include #include -#endif - #include BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME) diff --git a/miniboost/boost/predef/os/bsd/net.h b/miniboost/boost/predef/os/bsd/net.h index 387cbde5..3fe5589e 100644 --- a/miniboost/boost/predef/os/bsd/net.h +++ b/miniboost/boost/predef/os/bsd/net.h @@ -76,7 +76,7 @@ http://www.boost.org/LICENSE_1_0.txt) # include #endif -#define BOOST_OS_BSD_NET_NAME "DragonFly BSD" +#define BOOST_OS_BSD_NET_NAME "NetBSD" #endif diff --git a/miniboost/boost/predef/os/linux.h b/miniboost/boost/predef/os/linux.h index a297d089..f945f01e 100644 --- a/miniboost/boost/predef/os/linux.h +++ b/miniboost/boost/predef/os/linux.h @@ -21,13 +21,16 @@ http://www.boost.org/LICENSE_1_0.txt) [[`linux`] [__predef_detection__]] [[`__linux`] [__predef_detection__]] + [[`__linux__`] [__predef_detection__]] + [[`__gnu_linux__`] [__predef_detection__]] ] */ #define BOOST_OS_LINUX BOOST_VERSION_NUMBER_NOT_AVAILABLE #if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \ - defined(linux) || defined(__linux) \ + defined(linux) || defined(__linux) || \ + defined(__linux__) || defined(__gnu_linux__) \ ) # undef BOOST_OS_LINUX # define BOOST_OS_LINUX BOOST_VERSION_NUMBER_AVAILABLE diff --git a/miniboost/boost/predef/platform.h b/miniboost/boost/predef/platform.h index 6c366d59..65a0e2ac 100644 --- a/miniboost/boost/predef/platform.h +++ b/miniboost/boost/predef/platform.h @@ -11,6 +11,7 @@ http://www.boost.org/LICENSE_1_0.txt) #define BOOST_PREDEF_PLATFORM_H #endif +#include #include #include #include diff --git a/miniboost/boost/predef/platform/android.h b/miniboost/boost/predef/platform/android.h new file mode 100644 index 00000000..485382f6 --- /dev/null +++ b/miniboost/boost/predef/platform/android.h @@ -0,0 +1,43 @@ +/* +Copyright Rene Rivera 2015-2019 +Distributed under 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) +*/ + +#ifndef BOOST_PREDEF_PLAT_ANDROID_H +#define BOOST_PREDEF_PLAT_ANDROID_H + +#include +#include + +/*` +[heading `BOOST_PLAT_ANDROID`] + +[@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] platform. + +[table + [[__predef_symbol__] [__predef_version__]] + + [[`__ANDROID__`] [__predef_detection__]] + ] + */ + +#define BOOST_PLAT_ANDROID BOOST_VERSION_NUMBER_NOT_AVAILABLE + +#if defined(__ANDROID__) +# undef BOOST_PLAT_ANDROID +# define BOOST_PLAT_ANDROID BOOST_VERSION_NUMBER_AVAILABLE +#endif + +#if BOOST_PLAT_ANDROID +# define BOOST_PLAT_ANDROID_AVAILABLE +# include +#endif + +#define BOOST_PLAT_ANDROID_NAME "Android" + +#endif + +#include +BOOST_PREDEF_DECLARE_TEST(BOOST_PLAT_ANDROID,BOOST_PLAT_ANDROID_NAME) diff --git a/miniboost/boost/predef/platform/ios.h b/miniboost/boost/predef/platform/ios.h index af1c364c..83ba3c40 100644 --- a/miniboost/boost/predef/platform/ios.h +++ b/miniboost/boost/predef/platform/ios.h @@ -20,6 +20,7 @@ http://www.boost.org/LICENSE_1_0.txt) [[__predef_symbol__] [__predef_version__]] [[`TARGET_IPHONE_SIMULATOR`] [__predef_detection__]] + [[`TARGET_OS_SIMULATOR`] [__predef_detection__]] ] */ @@ -29,7 +30,10 @@ http://www.boost.org/LICENSE_1_0.txt) // https://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/TargetConditionals.h #if BOOST_OS_IOS # include -# if TARGET_IPHONE_SIMULATOR == 1 +# if defined(TARGET_OS_SIMULATOR) && (TARGET_OS_SIMULATOR == 1) +# undef BOOST_PLAT_IOS_SIMULATOR +# define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_AVAILABLE +# elif defined(TARGET_IPHONE_SIMULATOR) && (TARGET_IPHONE_SIMULATOR == 1) # undef BOOST_PLAT_IOS_SIMULATOR # define BOOST_PLAT_IOS_SIMULATOR BOOST_VERSION_NUMBER_AVAILABLE # else diff --git a/miniboost/boost/predef/version.h b/miniboost/boost/predef/version.h index 19b12a78..6406d795 100644 --- a/miniboost/boost/predef/version.h +++ b/miniboost/boost/predef/version.h @@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt) #include -#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,9,0) +#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,10,0) #endif diff --git a/miniboost/boost/smart_ptr/bad_weak_ptr.hpp b/miniboost/boost/smart_ptr/bad_weak_ptr.hpp index b086be59..e3e81f9f 100644 --- a/miniboost/boost/smart_ptr/bad_weak_ptr.hpp +++ b/miniboost/boost/smart_ptr/bad_weak_ptr.hpp @@ -47,7 +47,7 @@ class bad_weak_ptr: public std::exception { public: - virtual char const * what() const throw() + virtual char const * what() const BOOST_NOEXCEPT_OR_NOTHROW { return "tr1::bad_weak_ptr"; } diff --git a/miniboost/boost/smart_ptr/detail/local_counted_base.hpp b/miniboost/boost/smart_ptr/detail/local_counted_base.hpp index bda5f70d..405ef30a 100644 --- a/miniboost/boost/smart_ptr/detail/local_counted_base.hpp +++ b/miniboost/boost/smart_ptr/detail/local_counted_base.hpp @@ -101,13 +101,13 @@ private: public: - explicit local_counted_impl( shared_count const& pn ): pn_( pn ) + explicit local_counted_impl( shared_count const& pn ) BOOST_SP_NOEXCEPT: pn_( pn ) { } #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - explicit local_counted_impl( shared_count && pn ): pn_( std::move(pn) ) + explicit local_counted_impl( shared_count && pn ) BOOST_SP_NOEXCEPT: pn_( std::move(pn) ) { } diff --git a/miniboost/boost/smart_ptr/detail/local_sp_deleter.hpp b/miniboost/boost/smart_ptr/detail/local_sp_deleter.hpp index 7d04f1dc..9ede7e36 100644 --- a/miniboost/boost/smart_ptr/detail/local_sp_deleter.hpp +++ b/miniboost/boost/smart_ptr/detail/local_sp_deleter.hpp @@ -50,7 +50,7 @@ public: #endif - D& deleter() + D& deleter() BOOST_SP_NOEXCEPT { return d_; } @@ -74,12 +74,12 @@ template<> class local_sp_deleter { }; -template D * get_local_deleter( local_sp_deleter * p ) +template D * get_local_deleter( local_sp_deleter * p ) BOOST_SP_NOEXCEPT { return &p->deleter(); } -inline void * get_local_deleter( local_sp_deleter * /*p*/ ) +inline void * get_local_deleter( local_sp_deleter * /*p*/ ) BOOST_SP_NOEXCEPT { return 0; } diff --git a/miniboost/boost/smart_ptr/detail/shared_count.hpp b/miniboost/boost/smart_ptr/detail/shared_count.hpp index ae7d0fb4..d56718fe 100644 --- a/miniboost/boost/smart_ptr/detail/shared_count.hpp +++ b/miniboost/boost/smart_ptr/detail/shared_count.hpp @@ -29,7 +29,8 @@ #include #include #include -#include +#include +#include // In order to avoid circular dependencies with Boost.TR1 // we make sure that our include of doesn't try to // pull in the TR1 headers: that's why we use this header @@ -118,14 +119,14 @@ private: public: - BOOST_CONSTEXPR shared_count(): pi_(0) // nothrow + BOOST_CONSTEXPR shared_count() BOOST_SP_NOEXCEPT: pi_(0) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif { } - BOOST_CONSTEXPR explicit shared_count( sp_counted_base * pi ): pi_( pi ) // nothrow + BOOST_CONSTEXPR explicit shared_count( sp_counted_base * pi ) BOOST_SP_NOEXCEPT: pi_( pi ) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif @@ -421,7 +422,7 @@ public: r.release(); } - ~shared_count() // nothrow + ~shared_count() /*BOOST_SP_NOEXCEPT*/ { if( pi_ != 0 ) pi_->release(); #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) @@ -429,7 +430,7 @@ public: #endif } - shared_count(shared_count const & r): pi_(r.pi_) // nothrow + shared_count(shared_count const & r) BOOST_SP_NOEXCEPT: pi_(r.pi_) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif @@ -439,7 +440,7 @@ public: #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - shared_count(shared_count && r): pi_(r.pi_) // nothrow + shared_count(shared_count && r) BOOST_SP_NOEXCEPT: pi_(r.pi_) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif @@ -450,9 +451,9 @@ public: #endif explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0 - shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0 + shared_count( weak_count const & r, sp_nothrow_tag ) BOOST_SP_NOEXCEPT; // constructs an empty *this when r.use_count() == 0 - shared_count & operator= (shared_count const & r) // nothrow + shared_count & operator= (shared_count const & r) BOOST_SP_NOEXCEPT { sp_counted_base * tmp = r.pi_; @@ -466,49 +467,49 @@ public: return *this; } - void swap(shared_count & r) // nothrow + void swap(shared_count & r) BOOST_SP_NOEXCEPT { sp_counted_base * tmp = r.pi_; r.pi_ = pi_; pi_ = tmp; } - long use_count() const // nothrow + long use_count() const BOOST_SP_NOEXCEPT { return pi_ != 0? pi_->use_count(): 0; } - bool unique() const // nothrow + bool unique() const BOOST_SP_NOEXCEPT { return use_count() == 1; } - bool empty() const // nothrow + bool empty() const BOOST_SP_NOEXCEPT { return pi_ == 0; } - friend inline bool operator==(shared_count const & a, shared_count const & b) + friend inline bool operator==(shared_count const & a, shared_count const & b) BOOST_SP_NOEXCEPT { return a.pi_ == b.pi_; } - friend inline bool operator<(shared_count const & a, shared_count const & b) + friend inline bool operator<(shared_count const & a, shared_count const & b) BOOST_SP_NOEXCEPT { return std::less()( a.pi_, b.pi_ ); } - void * get_deleter( sp_typeinfo const & ti ) const + void * get_deleter( sp_typeinfo_ const & ti ) const BOOST_SP_NOEXCEPT { return pi_? pi_->get_deleter( ti ): 0; } - void * get_local_deleter( sp_typeinfo const & ti ) const + void * get_local_deleter( sp_typeinfo_ const & ti ) const BOOST_SP_NOEXCEPT { return pi_? pi_->get_local_deleter( ti ): 0; } - void * get_untyped_deleter() const + void * get_untyped_deleter() const BOOST_SP_NOEXCEPT { return pi_? pi_->get_untyped_deleter(): 0; } @@ -529,14 +530,14 @@ private: public: - BOOST_CONSTEXPR weak_count(): pi_(0) // nothrow + BOOST_CONSTEXPR weak_count() BOOST_SP_NOEXCEPT: pi_(0) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(weak_count_id) #endif { } - weak_count(shared_count const & r): pi_(r.pi_) // nothrow + weak_count(shared_count const & r) BOOST_SP_NOEXCEPT: pi_(r.pi_) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(weak_count_id) #endif @@ -544,7 +545,7 @@ public: if(pi_ != 0) pi_->weak_add_ref(); } - weak_count(weak_count const & r): pi_(r.pi_) // nothrow + weak_count(weak_count const & r) BOOST_SP_NOEXCEPT: pi_(r.pi_) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(weak_count_id) #endif @@ -556,7 +557,7 @@ public: #if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - weak_count(weak_count && r): pi_(r.pi_) // nothrow + weak_count(weak_count && r) BOOST_SP_NOEXCEPT: pi_(r.pi_) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(weak_count_id) #endif @@ -566,7 +567,7 @@ public: #endif - ~weak_count() // nothrow + ~weak_count() /*BOOST_SP_NOEXCEPT*/ { if(pi_ != 0) pi_->weak_release(); #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) @@ -574,7 +575,7 @@ public: #endif } - weak_count & operator= (shared_count const & r) // nothrow + weak_count & operator= (shared_count const & r) BOOST_SP_NOEXCEPT { sp_counted_base * tmp = r.pi_; @@ -588,7 +589,7 @@ public: return *this; } - weak_count & operator= (weak_count const & r) // nothrow + weak_count & operator= (weak_count const & r) BOOST_SP_NOEXCEPT { sp_counted_base * tmp = r.pi_; @@ -602,29 +603,29 @@ public: return *this; } - void swap(weak_count & r) // nothrow + void swap(weak_count & r) BOOST_SP_NOEXCEPT { sp_counted_base * tmp = r.pi_; r.pi_ = pi_; pi_ = tmp; } - long use_count() const // nothrow + long use_count() const BOOST_SP_NOEXCEPT { return pi_ != 0? pi_->use_count(): 0; } - bool empty() const // nothrow + bool empty() const BOOST_SP_NOEXCEPT { return pi_ == 0; } - friend inline bool operator==(weak_count const & a, weak_count const & b) + friend inline bool operator==(weak_count const & a, weak_count const & b) BOOST_SP_NOEXCEPT { return a.pi_ == b.pi_; } - friend inline bool operator<(weak_count const & a, weak_count const & b) + friend inline bool operator<(weak_count const & a, weak_count const & b) BOOST_SP_NOEXCEPT { return std::less()(a.pi_, b.pi_); } @@ -641,7 +642,7 @@ inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ ) } } -inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ ) +inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ) BOOST_SP_NOEXCEPT: pi_( r.pi_ ) #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) , id_(shared_count_id) #endif diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp index aa7ea9a2..07c07e23 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp @@ -15,7 +15,7 @@ // Lock-free algorithm by Alexander Terekhov // -#include +#include #include #include @@ -104,8 +104,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_aix.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_aix.hpp index cbb64268..072c667e 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_aix.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_aix.hpp @@ -20,7 +20,7 @@ // formulation // -#include +#include #include #include #include @@ -96,8 +96,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_clang.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_clang.hpp index c2c20d3a..89bcfb80 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_clang.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_clang.hpp @@ -15,7 +15,8 @@ // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt -#include +#include +#include #include #include @@ -27,17 +28,17 @@ namespace detail typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t; -inline void atomic_increment( atomic_int_least32_t * pw ) +inline void atomic_increment( atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { __c11_atomic_fetch_add( pw, 1, __ATOMIC_RELAXED ); } -inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw ) +inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { return __c11_atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL ); } -inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw ) +inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { // long r = *pw; // if( r != 0 ) ++*pw; @@ -76,43 +77,43 @@ private: public: - sp_counted_base() + sp_counted_base() BOOST_SP_NOEXCEPT { __c11_atomic_init( &use_count_, 1 ); __c11_atomic_init( &weak_count_, 1 ); } - virtual ~sp_counted_base() // nothrow + virtual ~sp_counted_base() /*BOOST_SP_NOEXCEPT*/ { } // dispose() is called when use_count_ drops to zero, to release // the resources managed by *this. - virtual void dispose() = 0; // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT = 0; // nothrow // destroy() is called when weak_count_ drops to zero. - virtual void destroy() // nothrow + virtual void destroy() BOOST_SP_NOEXCEPT // nothrow { delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT = 0; - void add_ref_copy() + void add_ref_copy() BOOST_SP_NOEXCEPT { atomic_increment( &use_count_ ); } - bool add_ref_lock() // true on success + bool add_ref_lock() BOOST_SP_NOEXCEPT // true on success { return atomic_conditional_increment( &use_count_ ) != 0; } - void release() // nothrow + void release() BOOST_SP_NOEXCEPT { if( atomic_decrement( &use_count_ ) == 1 ) { @@ -121,12 +122,12 @@ public: } } - void weak_add_ref() // nothrow + void weak_add_ref() BOOST_SP_NOEXCEPT { atomic_increment( &weak_count_ ); } - void weak_release() // nothrow + void weak_release() BOOST_SP_NOEXCEPT { if( atomic_decrement( &weak_count_ ) == 1 ) { @@ -134,7 +135,7 @@ public: } } - long use_count() const // nothrow + long use_count() const BOOST_SP_NOEXCEPT { return __c11_atomic_load( const_cast< atomic_int_least32_t* >( &use_count_ ), __ATOMIC_ACQUIRE ); } diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp index c43297e0..8e5a414d 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp @@ -24,7 +24,7 @@ // formulation // -#include +#include #include namespace boost @@ -124,8 +124,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp index 32642df7..73d45338 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp @@ -16,7 +16,7 @@ // Lock-free algorithm by Alexander Terekhov // -#include +#include #include namespace boost @@ -111,8 +111,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp index c4ce0537..f109f657 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp @@ -20,7 +20,7 @@ // Lock-free algorithm by Alexander Terekhov // -#include +#include #include namespace boost @@ -141,8 +141,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp index 5cf5b3fa..5dce1cf6 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp @@ -24,7 +24,7 @@ // formulation // -#include +#include #include namespace boost @@ -135,8 +135,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp index 2f27b96e..a3d72958 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp @@ -19,7 +19,7 @@ // // Thanks to Michael van der Westhuizen -#include +#include #include #include // int32_t @@ -120,8 +120,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp index ec44c706..ebbea502 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp @@ -24,7 +24,7 @@ // formulation // -#include +#include #include namespace boost @@ -127,8 +127,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_nt.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_nt.hpp index e61bd883..08300505 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_nt.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_nt.hpp @@ -18,8 +18,10 @@ // http://www.boost.org/LICENSE_1_0.txt) // -#include +#include +#include #include +#include namespace boost { @@ -34,48 +36,48 @@ private: sp_counted_base( sp_counted_base const & ); sp_counted_base & operator= ( sp_counted_base const & ); - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) + boost::int_least32_t use_count_; // #shared + boost::int_least32_t weak_count_; // #weak + (#shared != 0) public: - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + sp_counted_base() BOOST_SP_NOEXCEPT: use_count_( 1 ), weak_count_( 1 ) { } - virtual ~sp_counted_base() // nothrow + virtual ~sp_counted_base() /*BOOST_SP_NOEXCEPT*/ { } // dispose() is called when use_count_ drops to zero, to release // the resources managed by *this. - virtual void dispose() = 0; // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT = 0; // nothrow // destroy() is called when weak_count_ drops to zero. - virtual void destroy() // nothrow + virtual void destroy() BOOST_SP_NOEXCEPT // nothrow { delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT = 0; - void add_ref_copy() + void add_ref_copy() BOOST_SP_NOEXCEPT { ++use_count_; } - bool add_ref_lock() // true on success + bool add_ref_lock() BOOST_SP_NOEXCEPT // true on success { if( use_count_ == 0 ) return false; ++use_count_; return true; } - void release() // nothrow + void release() BOOST_SP_NOEXCEPT { if( --use_count_ == 0 ) { @@ -84,12 +86,12 @@ public: } } - void weak_add_ref() // nothrow + void weak_add_ref() BOOST_SP_NOEXCEPT { ++weak_count_; } - void weak_release() // nothrow + void weak_release() BOOST_SP_NOEXCEPT { if( --weak_count_ == 0 ) { @@ -97,7 +99,7 @@ public: } } - long use_count() const // nothrow + long use_count() const BOOST_SP_NOEXCEPT { return use_count_; } diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_pt.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_pt.hpp index 3110f238..ec850fe6 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_pt.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_pt.hpp @@ -18,9 +18,10 @@ // http://www.boost.org/LICENSE_1_0.txt) // -#include +#include #include #include +#include #include namespace boost @@ -36,8 +37,8 @@ private: sp_counted_base( sp_counted_base const & ); sp_counted_base & operator= ( sp_counted_base const & ); - long use_count_; // #shared - long weak_count_; // #weak + (#shared != 0) + boost::int_least32_t use_count_; // #shared + boost::int_least32_t weak_count_; // #weak + (#shared != 0) mutable pthread_mutex_t m_; @@ -71,8 +72,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() @@ -93,7 +94,7 @@ public: void release() // nothrow { BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long new_use_count = --use_count_; + boost::int_least32_t new_use_count = --use_count_; BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); if( new_use_count == 0 ) @@ -113,7 +114,7 @@ public: void weak_release() // nothrow { BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long new_weak_count = --weak_count_; + boost::int_least32_t new_weak_count = --weak_count_; BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); if( new_weak_count == 0 ) @@ -125,7 +126,7 @@ public: long use_count() const // nothrow { BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 ); - long r = use_count_; + boost::int_least32_t r = use_count_; BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 ); return r; diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp index 1b9979bf..f38eee65 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp @@ -19,7 +19,7 @@ // // Thanks to Michael van der Westhuizen -#include +#include #include #include // uint32_t @@ -115,8 +115,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_spin.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_spin.hpp index b9966260..56911bdb 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_spin.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_spin.hpp @@ -18,7 +18,7 @@ // http://www.boost.org/LICENSE_1_0.txt) // -#include +#include #include #include @@ -84,8 +84,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp index 8cd18c95..338eeea7 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp @@ -15,7 +15,8 @@ // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt -#include +#include +#include #include #include #include @@ -26,17 +27,17 @@ namespace boost namespace detail { -inline void atomic_increment( std::atomic_int_least32_t * pw ) +inline void atomic_increment( std::atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { pw->fetch_add( 1, std::memory_order_relaxed ); } -inline std::int_least32_t atomic_decrement( std::atomic_int_least32_t * pw ) +inline std::int_least32_t atomic_decrement( std::atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { return pw->fetch_sub( 1, std::memory_order_acq_rel ); } -inline std::int_least32_t atomic_conditional_increment( std::atomic_int_least32_t * pw ) +inline std::int_least32_t atomic_conditional_increment( std::atomic_int_least32_t * pw ) BOOST_SP_NOEXCEPT { // long r = *pw; // if( r != 0 ) ++*pw; @@ -70,41 +71,41 @@ private: public: - sp_counted_base(): use_count_( 1 ), weak_count_( 1 ) + sp_counted_base() BOOST_SP_NOEXCEPT: use_count_( 1 ), weak_count_( 1 ) { } - virtual ~sp_counted_base() // nothrow + virtual ~sp_counted_base() /*BOOST_SP_NOEXCEPT*/ { } // dispose() is called when use_count_ drops to zero, to release // the resources managed by *this. - virtual void dispose() = 0; // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT = 0; // destroy() is called when weak_count_ drops to zero. - virtual void destroy() // nothrow + virtual void destroy() BOOST_SP_NOEXCEPT { delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_untyped_deleter() = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT = 0; + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT = 0; - void add_ref_copy() + void add_ref_copy() BOOST_SP_NOEXCEPT { atomic_increment( &use_count_ ); } - bool add_ref_lock() // true on success + bool add_ref_lock() BOOST_SP_NOEXCEPT // true on success { return atomic_conditional_increment( &use_count_ ) != 0; } - void release() // nothrow + void release() BOOST_SP_NOEXCEPT { if( atomic_decrement( &use_count_ ) == 1 ) { @@ -113,12 +114,12 @@ public: } } - void weak_add_ref() // nothrow + void weak_add_ref() BOOST_SP_NOEXCEPT { atomic_increment( &weak_count_ ); } - void weak_release() // nothrow + void weak_release() BOOST_SP_NOEXCEPT { if( atomic_decrement( &weak_count_ ) == 1 ) { @@ -126,7 +127,7 @@ public: } } - long use_count() const // nothrow + long use_count() const BOOST_SP_NOEXCEPT { return use_count_.load( std::memory_order_acquire ); } diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_sync.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_sync.hpp index 17128cc9..8446560e 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_sync.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_sync.hpp @@ -15,7 +15,7 @@ // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt -#include +#include #include #include @@ -109,8 +109,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp index 088ed639..2467e95a 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp @@ -21,7 +21,7 @@ // formulation // -#include +#include #include extern "builtin" void __lwsync(void); @@ -104,8 +104,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_base_w32.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_base_w32.hpp index 46bd4d15..9ab71eff 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_base_w32.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_base_w32.hpp @@ -25,8 +25,8 @@ // #include +#include #include -#include #include namespace boost @@ -67,8 +67,8 @@ public: delete this; } - virtual void * get_deleter( sp_typeinfo const & ti ) = 0; - virtual void * get_local_deleter( sp_typeinfo const & ti ) = 0; + virtual void * get_deleter( sp_typeinfo_ const & ti ) = 0; + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) = 0; virtual void * get_untyped_deleter() = 0; void add_ref_copy() diff --git a/miniboost/boost/smart_ptr/detail/sp_counted_impl.hpp b/miniboost/boost/smart_ptr/detail/sp_counted_impl.hpp index 3c0502a4..96c9da38 100644 --- a/miniboost/boost/smart_ptr/detail/sp_counted_impl.hpp +++ b/miniboost/boost/smart_ptr/detail/sp_counted_impl.hpp @@ -26,6 +26,7 @@ #include #include +#include #include #if defined(BOOST_SP_USE_QUICK_ALLOCATOR) @@ -55,12 +56,12 @@ namespace detail template class local_sp_deleter; -template D * get_local_deleter( D * /*p*/ ) +template D * get_local_deleter( D * /*p*/ ) BOOST_SP_NOEXCEPT { return 0; } -template D * get_local_deleter( local_sp_deleter * p ); +template D * get_local_deleter( local_sp_deleter * p ) BOOST_SP_NOEXCEPT; // @@ -84,7 +85,7 @@ public: #endif } - virtual void dispose() // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT { #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) boost::sp_scalar_destructor_hook( px_, sizeof(X), this ); @@ -92,17 +93,17 @@ public: boost::checked_delete( px_ ); } - virtual void * get_deleter( sp_typeinfo const & ) + virtual void * get_deleter( sp_typeinfo_ const & ) BOOST_SP_NOEXCEPT { return 0; } - virtual void * get_local_deleter( sp_typeinfo const & ) + virtual void * get_local_deleter( sp_typeinfo_ const & ) BOOST_SP_NOEXCEPT { return 0; } - virtual void * get_untyped_deleter() + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT { return 0; } @@ -167,22 +168,22 @@ public: { } - virtual void dispose() // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT { del( ptr ); } - virtual void * get_deleter( sp_typeinfo const & ti ) + virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT { - return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast( del ): 0; + return ti == BOOST_SP_TYPEID_(D)? &reinterpret_cast( del ): 0; } - virtual void * get_local_deleter( sp_typeinfo const & ti ) + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT { - return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( boost::addressof( del ) ): 0; + return ti == BOOST_SP_TYPEID_(D)? boost::detail::get_local_deleter( boost::addressof( del ) ): 0; } - virtual void * get_untyped_deleter() + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT { return &reinterpret_cast( del ); } @@ -241,12 +242,12 @@ public: { } - virtual void dispose() // nothrow + virtual void dispose() BOOST_SP_NOEXCEPT { d_( p_ ); } - virtual void destroy() // nothrow + virtual void destroy() BOOST_SP_NOEXCEPT { #if !defined( BOOST_NO_CXX11_ALLOCATOR ) @@ -265,17 +266,17 @@ public: a2.deallocate( this, 1 ); } - virtual void * get_deleter( sp_typeinfo const & ti ) + virtual void * get_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT { - return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast( d_ ): 0; + return ti == BOOST_SP_TYPEID_( D )? &reinterpret_cast( d_ ): 0; } - virtual void * get_local_deleter( sp_typeinfo const & ti ) + virtual void * get_local_deleter( sp_typeinfo_ const & ti ) BOOST_SP_NOEXCEPT { - return ti == BOOST_SP_TYPEID(D)? boost::detail::get_local_deleter( boost::addressof( d_ ) ): 0; + return ti == BOOST_SP_TYPEID_( D )? boost::detail::get_local_deleter( boost::addressof( d_ ) ): 0; } - virtual void * get_untyped_deleter() + virtual void * get_untyped_deleter() BOOST_SP_NOEXCEPT { return &reinterpret_cast( d_ ); } diff --git a/miniboost/boost/smart_ptr/detail/sp_typeinfo_.hpp b/miniboost/boost/smart_ptr/detail/sp_typeinfo_.hpp new file mode 100644 index 00000000..287bf728 --- /dev/null +++ b/miniboost/boost/smart_ptr/detail/sp_typeinfo_.hpp @@ -0,0 +1,58 @@ +#ifndef BOOST_SMART_PTR_DETAIL_SP_TYPEINFO_HPP_INCLUDED +#define BOOST_SMART_PTR_DETAIL_SP_TYPEINFO_HPP_INCLUDED + +// MS compatible compilers support #pragma once + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma once +#endif + +// smart_ptr/detail/sp_typeinfo_.hpp +// +// Copyright 2007, 2019 Peter Dimov +// +// Distributed under 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) + +#include + +#if defined( BOOST_NO_TYPEID ) || defined( BOOST_NO_STD_TYPEINFO ) + +#include + +namespace boost +{ + +namespace detail +{ + +typedef boost::core::typeinfo sp_typeinfo_; + +} // namespace detail + +} // namespace boost + +#define BOOST_SP_TYPEID_(T) BOOST_CORE_TYPEID(T) + +#else // defined( BOOST_NO_TYPEID ) || defined( BOOST_NO_STD_TYPEINFO ) + +#include + +namespace boost +{ + +namespace detail +{ + +typedef std::type_info sp_typeinfo_; + +} // namespace detail + +} // namespace boost + +#define BOOST_SP_TYPEID_(T) typeid(T) + +#endif // defined( BOOST_NO_TYPEID ) || defined( BOOST_NO_STD_TYPEINFO ) + +#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/miniboost/boost/smart_ptr/detail/spinlock_std_atomic.hpp b/miniboost/boost/smart_ptr/detail/spinlock_std_atomic.hpp index a61c1cd9..b1d1eea7 100644 --- a/miniboost/boost/smart_ptr/detail/spinlock_std_atomic.hpp +++ b/miniboost/boost/smart_ptr/detail/spinlock_std_atomic.hpp @@ -16,6 +16,7 @@ // #include +#include #include namespace boost @@ -32,12 +33,12 @@ public: public: - bool try_lock() + bool try_lock() BOOST_NOEXCEPT { return !v_.test_and_set( std::memory_order_acquire ); } - void lock() + void lock() BOOST_NOEXCEPT { for( unsigned k = 0; !try_lock(); ++k ) { @@ -45,7 +46,7 @@ public: } } - void unlock() + void unlock() BOOST_NOEXCEPT { v_ .clear( std::memory_order_release ); } @@ -63,12 +64,12 @@ public: public: - explicit scoped_lock( spinlock & sp ): sp_( sp ) + explicit scoped_lock( spinlock & sp ) BOOST_NOEXCEPT: sp_( sp ) { sp.lock(); } - ~scoped_lock() + ~scoped_lock() /*BOOST_NOEXCEPT*/ { sp_.unlock(); } diff --git a/miniboost/boost/smart_ptr/detail/yield_k.hpp b/miniboost/boost/smart_ptr/detail/yield_k.hpp index 403f32f9..e9c41b95 100644 --- a/miniboost/boost/smart_ptr/detail/yield_k.hpp +++ b/miniboost/boost/smart_ptr/detail/yield_k.hpp @@ -25,7 +25,7 @@ // #include -#include +#include #if BOOST_PLAT_WINDOWS_RUNTIME #include @@ -78,7 +78,7 @@ namespace detail #endif // !defined( BOOST_USE_WINDOWS_H ) && !BOOST_PLAT_WINDOWS_RUNTIME -inline void yield( unsigned k ) +inline void yield( unsigned k ) BOOST_NOEXCEPT { if( k < 4 ) { diff --git a/miniboost/boost/smart_ptr/shared_array.hpp b/miniboost/boost/smart_ptr/shared_array.hpp index 3ffa7426..a785f8ee 100644 --- a/miniboost/boost/smart_ptr/shared_array.hpp +++ b/miniboost/boost/smart_ptr/shared_array.hpp @@ -225,7 +225,7 @@ public: pn.swap(other.pn); } - void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_SP_NOEXCEPT + void * _internal_get_deleter( boost::detail::sp_typeinfo_ const & ti ) const BOOST_SP_NOEXCEPT { return pn.get_deleter( ti ); } @@ -285,7 +285,7 @@ template void swap(shared_array & a, shared_array & b) BOOST_SP_N template< class D, class T > D * get_deleter( shared_array const & p ) BOOST_SP_NOEXCEPT { - return static_cast< D * >( p._internal_get_deleter( BOOST_SP_TYPEID(D) ) ); + return static_cast< D * >( p._internal_get_deleter( BOOST_SP_TYPEID_(D) ) ); } } // namespace boost diff --git a/miniboost/boost/smart_ptr/shared_ptr.hpp b/miniboost/boost/smart_ptr/shared_ptr.hpp index 4ac0699e..5ac02beb 100644 --- a/miniboost/boost/smart_ptr/shared_ptr.hpp +++ b/miniboost/boost/smart_ptr/shared_ptr.hpp @@ -777,12 +777,12 @@ public: return pn < rhs.pn; } - void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_SP_NOEXCEPT + void * _internal_get_deleter( boost::detail::sp_typeinfo_ const & ti ) const BOOST_SP_NOEXCEPT { return pn.get_deleter( ti ); } - void * _internal_get_local_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_SP_NOEXCEPT + void * _internal_get_local_deleter( boost::detail::sp_typeinfo_ const & ti ) const BOOST_SP_NOEXCEPT { return pn.get_local_deleter( ti ); } @@ -797,7 +797,7 @@ public: return px == r.px && pn == r.pn; } - boost::detail::shared_count _internal_count() const BOOST_NOEXCEPT + boost::detail::shared_count _internal_count() const BOOST_SP_NOEXCEPT { return pn; } @@ -1008,7 +1008,7 @@ namespace detail template D * basic_get_deleter( shared_ptr const & p ) BOOST_SP_NOEXCEPT { - return static_cast( p._internal_get_deleter(BOOST_SP_TYPEID(D)) ); + return static_cast( p._internal_get_deleter(BOOST_SP_TYPEID_(D)) ); } template D * basic_get_local_deleter( D *, shared_ptr const & p ) BOOST_SP_NOEXCEPT; @@ -1022,7 +1022,7 @@ private: public: - esft2_deleter_wrapper() + esft2_deleter_wrapper() BOOST_SP_NOEXCEPT { } @@ -1165,12 +1165,12 @@ namespace detail template D * basic_get_local_deleter( D *, shared_ptr const & p ) BOOST_SP_NOEXCEPT { - return static_cast( p._internal_get_local_deleter( BOOST_SP_TYPEID(local_sp_deleter) ) ); + return static_cast( p._internal_get_local_deleter( BOOST_SP_TYPEID_(local_sp_deleter) ) ); } template D const * basic_get_local_deleter( D const *, shared_ptr const & p ) BOOST_SP_NOEXCEPT { - return static_cast( p._internal_get_local_deleter( BOOST_SP_TYPEID(local_sp_deleter) ) ); + return static_cast( p._internal_get_local_deleter( BOOST_SP_TYPEID_(local_sp_deleter) ) ); } } // namespace detail diff --git a/miniboost/boost/smart_ptr/weak_ptr.hpp b/miniboost/boost/smart_ptr/weak_ptr.hpp index 54d9ef37..5230f35e 100644 --- a/miniboost/boost/smart_ptr/weak_ptr.hpp +++ b/miniboost/boost/smart_ptr/weak_ptr.hpp @@ -137,6 +137,23 @@ public: boost::detail::sp_assert_convertible< Y, T >(); } + // aliasing + template weak_ptr(shared_ptr const & r, element_type * p) BOOST_SP_NOEXCEPT: px( p ), pn( r.pn ) + { + } + + template weak_ptr(weak_ptr const & r, element_type * p) BOOST_SP_NOEXCEPT: px( p ), pn( r.pn ) + { + } + +#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) + + template weak_ptr(weak_ptr && r, element_type * p) BOOST_SP_NOEXCEPT: px( p ), pn( std::move( r.pn ) ) + { + } + +#endif + #if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1300) template @@ -194,6 +211,11 @@ public: return pn.empty(); } + bool empty() const BOOST_SP_NOEXCEPT // extension, not in std::weak_ptr + { + return pn.empty(); + } + void reset() BOOST_SP_NOEXCEPT { this_type().swap(*this); @@ -205,13 +227,6 @@ public: pn.swap(other.pn); } - template - void _internal_aliasing_assign(weak_ptr const & r, element_type * px2) BOOST_SP_NOEXCEPT - { - px = px2; - pn = r.pn; - } - template bool owner_before( weak_ptr const & rhs ) const BOOST_SP_NOEXCEPT { return pn < rhs.pn; diff --git a/miniboost/boost/static_assert.hpp b/miniboost/boost/static_assert.hpp index 07d461d4..fd7b2245 100644 --- a/miniboost/boost/static_assert.hpp +++ b/miniboost/boost/static_assert.hpp @@ -53,9 +53,9 @@ // #if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))) # ifndef BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true) +# define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) != 0) # else -# define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true) +# define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) != 0) # endif #else # ifndef BOOST_NO_CXX11_VARIADIC_MACROS diff --git a/miniboost/boost/throw_exception.hpp b/miniboost/boost/throw_exception.hpp index c6623e19..cd77eade 100644 --- a/miniboost/boost/throw_exception.hpp +++ b/miniboost/boost/throw_exception.hpp @@ -54,7 +54,7 @@ namespace boost { #ifdef BOOST_NO_EXCEPTIONS -void throw_exception( std::exception const & e ); // user defined +BOOST_NORETURN void throw_exception( std::exception const & e ); // user defined #else diff --git a/miniboost/boost/type_traits/detail/config.hpp b/miniboost/boost/type_traits/detail/config.hpp index 7c6149e5..7c4b4f21 100644 --- a/miniboost/boost/type_traits/detail/config.hpp +++ b/miniboost/boost/type_traits/detail/config.hpp @@ -81,11 +81,32 @@ // // Can we implement accurate is_function/is_member_function_pointer (post C++03)? // -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !BOOST_WORKAROUND(BOOST_GCC, < 40900)\ +#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !BOOST_WORKAROUND(BOOST_GCC, < 40805)\ && !BOOST_WORKAROUND(BOOST_MSVC, < 1900) && !BOOST_WORKAROUND(__clang_major__, <= 4) # define BOOST_TT_HAS_ASCCURATE_IS_FUNCTION #endif +#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703) +# define BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM +#endif +#if defined(__APPLE_CC__) && defined(__clang_major__) && (__clang_major__ == 9) && (__clang_minor__ == 0) +# define BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM +# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE +#endif +// +// If we have the SD6 macros (check for C++11's __cpp_rvalue_references), and we don't have __cpp_noexcept_function_type +// set, then don't treat noexcept functions as seperate types. This is a fix for msvc with the /Zc:noexceptTypes- flag set. +// +#if defined(__cpp_rvalue_references) && !defined(__cpp_noexcept_function_type) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) +# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE +#endif +// +// Check MSVC specific macro on older msvc compilers that don't support the SD6 macros, we don't rely on this +// if the SD6 macros *are* available as it appears to be undocumented. +// +#if defined(BOOST_MSVC) && !defined(__cpp_rvalue_references) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) && !defined(_NOEXCEPT_TYPES_SUPPORTED) +# define BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE +#endif #endif // BOOST_TT_CONFIG_HPP_INCLUDED diff --git a/miniboost/boost/type_traits/detail/is_function_cxx_11.hpp b/miniboost/boost/type_traits/detail/is_function_cxx_11.hpp index 30311307..4de74a73 100644 --- a/miniboost/boost/type_traits/detail/is_function_cxx_11.hpp +++ b/miniboost/boost/type_traits/detail/is_function_cxx_11.hpp @@ -18,7 +18,7 @@ namespace boost { template struct is_function : public false_type {}; -#if defined(__cpp_noexcept_function_type) && !defined(_MSC_VER) +#if defined(__cpp_noexcept_function_type) && !defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) #define BOOST_TT_NOEXCEPT_PARAM , bool NE #define BOOST_TT_NOEXCEPT_DECL noexcept(NE) #else @@ -96,7 +96,7 @@ namespace boost { template struct is_function : public true_type {}; -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template struct is_function : public true_type {}; @@ -104,11 +104,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -117,11 +121,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -130,11 +138,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -143,11 +155,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // reference qualified: #ifdef __CLR_VER @@ -157,11 +173,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -170,11 +190,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -183,11 +207,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -196,11 +224,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // rvalue reference qualified: #ifdef __CLR_VER @@ -209,12 +241,16 @@ namespace boost { #endif #ifndef _M_AMD64 template - struct is_function : public true_type {}; + struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -223,11 +259,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -236,11 +276,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -249,17 +293,21 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif #endif // _MSC_VER // All over again for msvc with noexcept: -#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703) +#if defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) #undef BOOST_TT_NOEXCEPT_DECL #define BOOST_TT_NOEXCEPT_DECL noexcept @@ -328,7 +376,7 @@ namespace boost { template struct is_function : public true_type {}; -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template struct is_function : public true_type {}; @@ -336,11 +384,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -349,11 +401,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -362,11 +418,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -375,11 +435,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // reference qualified: #ifdef __CLR_VER @@ -389,11 +453,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -402,11 +470,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -415,11 +487,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -428,11 +504,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // rvalue reference qualified: #ifdef __CLR_VER @@ -442,11 +522,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const: #ifdef __CLR_VER template @@ -455,11 +539,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // volatile: #ifdef __CLR_VER template @@ -468,11 +556,15 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif // const volatile: #ifdef __CLR_VER template @@ -481,13 +573,17 @@ namespace boost { #ifndef _M_AMD64 template struct is_function : public true_type {}; +#ifndef __CLR_VER template struct is_function : public true_type {}; #endif +#endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_function : public true_type {}; +#endif -#endif // _MSC_VER +#endif // defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #endif diff --git a/miniboost/boost/type_traits/detail/is_function_ptr_tester.hpp b/miniboost/boost/type_traits/detail/is_function_ptr_tester.hpp index 4fe88e81..41ddd226 100644 --- a/miniboost/boost/type_traits/detail/is_function_ptr_tester.hpp +++ b/miniboost/boost/type_traits/detail/is_function_ptr_tester.hpp @@ -44,368 +44,524 @@ no_type BOOST_TT_DECL is_function_ptr_tester(...); // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename template -yes_type is_function_ptr_tester(R (*)()); +yes_type is_function_ptr_tester(R(*)()); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING template -yes_type is_function_ptr_tester(R (*)( ...)); +yes_type is_function_ptr_tester(R(*)(...)); +#endif #ifdef BOOST_TT_TEST_MS_FUNC_SIGS template -yes_type is_function_ptr_tester(R (__stdcall*)()); +yes_type is_function_ptr_tester(R(__stdcall*)()); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)()); +#endif #ifndef _MANAGED template -yes_type is_function_ptr_tester(R (__fastcall*)()); +yes_type is_function_ptr_tester(R(__fastcall*)()); #endif template -yes_type is_function_ptr_tester(R (__cdecl*)()); +yes_type is_function_ptr_tester(R(__cdecl*)()); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0)); -template -yes_type is_function_ptr_tester(R (*)( T0 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +#endif #ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +#endif +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_function_ptr_tester(R(*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 ...)); #endif -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -template -yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); -#ifndef _MANAGED -template -yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +template +yes_type is_function_ptr_tester(R(__stdcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); #endif -template -yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); +#ifndef _MANAGED +template +yes_type is_function_ptr_tester(R(__fastcall*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +#endif +template +yes_type is_function_ptr_tester(R(__cdecl*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); #endif #else @@ -437,6 +593,10 @@ yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) . @#ifdef BOOST_TT_TEST_MS_FUNC_SIGS template yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +@#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_function_ptr_tester(R(__vectorcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER, T))); +@#endif @#ifndef _MANAGED template yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); diff --git a/miniboost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp b/miniboost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp index c186db7b..2de883ff 100644 --- a/miniboost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp +++ b/miniboost/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp @@ -43,1669 +43,1460 @@ no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...); // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)()); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)()); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)() const); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)() volatile); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)() const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...)); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(...)); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(...) const); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile); - +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(...) volatile); template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile); +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(...) const volatile); +#endif #ifdef BOOST_TT_TEST_MS_FUNC_SIGS template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)()); - +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)()); template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const); - +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)() const); template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile); - +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)() volatile); template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile); - +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)() const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)()); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)() const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)() volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)() const volatile); +#endif #ifndef _MANAGED template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)()); - +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)()); template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const); - +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)() const); template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile); - +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)() volatile); template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile); - +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)() const volatile); #endif - template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)()); - +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)()); template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const); - +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)() const); template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile); - +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)() volatile); template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile); - +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)() const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile); - #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const volatile); +#endif #ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const volatile); +#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 ...)); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 ...) const); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 ...) volatile); +template +yes_type is_mem_fun_pointer_tester(R(T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24 ...) const volatile); #endif -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile); #ifdef BOOST_TT_TEST_MS_FUNC_SIGS -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - -#ifndef _MANAGED -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__stdcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const volatile); +#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__vectorcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const volatile); #endif - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile); - -template -yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile); - +#ifndef _MANAGED +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__fastcall T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const volatile); +#endif +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24)); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) volatile); +template +yes_type is_mem_fun_pointer_tester(R(__cdecl T::*const volatile*)(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24) const volatile); #endif #else @@ -1766,7 +1557,19 @@ yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_EN template yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); +@#if (_MSC_VER >= 1800) && !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) +template +yes_type is_mem_fun_pointer_tester(R (__vectorcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); +template +yes_type is_mem_fun_pointer_tester(R (__vectorcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const); + +template +yes_type is_mem_fun_pointer_tester(R (__vectorcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile); + +template +yes_type is_mem_fun_pointer_tester(R (__vectorcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile); +@#endif @#ifndef _MANAGED template yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))); diff --git a/miniboost/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp b/miniboost/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp index b77a4a57..b0502cbe 100644 --- a/miniboost/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +++ b/miniboost/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp @@ -31,7 +31,7 @@ namespace boost { template struct is_member_function_pointer : public is_member_function_pointer {}; -#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703) +#if defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) // MSVC can't handle noexcept(b) as a deduced template parameter // so we will have to write everything out :( #define BOOST_TT_NOEXCEPT_PARAM @@ -108,192 +108,249 @@ namespace boost { template struct is_member_function_pointer : public true_type {}; -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif // reference qualified: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif // rvalue reference qualified: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif +#endif -#if defined(_MSVC_LANG) && (_MSVC_LANG >= 201703) +#if defined(BOOST_TT_NO_DEDUCED_NOEXCEPT_PARAM) && !defined(BOOST_TT_NO_NOEXCEPT_SEPARATE_TYPE) #undef BOOST_TT_NOEXCEPT_DECL #define BOOST_TT_NOEXCEPT_DECL noexcept @@ -362,189 +419,247 @@ namespace boost { template struct is_member_function_pointer : public true_type {}; -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif // reference qualified: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif // rvalue reference qualified: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; +#endif + // const volatile: #ifdef __CLR_VER template - struct is_member_function_pointer : public true_type {}; + struct is_member_function_pointer : public true_type {}; + #endif #ifndef _M_AMD64 template struct is_member_function_pointer : public true_type {}; +#ifndef __CLR_VER template struct is_member_function_pointer : public true_type {}; +#endif template struct is_member_function_pointer : public true_type {}; #endif +#if !defined(__CLR_VER) && (defined(_M_IX86_FP) && (_M_IX86_FP >= 2) || defined(_M_X64)) template struct is_member_function_pointer : public true_type {}; #endif +#endif #endif diff --git a/miniboost/boost/type_traits/is_complete.hpp b/miniboost/boost/type_traits/is_complete.hpp index cad04b3c..07cb8974 100644 --- a/miniboost/boost/type_traits/is_complete.hpp +++ b/miniboost/boost/type_traits/is_complete.hpp @@ -50,7 +50,7 @@ namespace boost { } template struct is_complete - : public integral_constant::type>::value || (sizeof(detail::check_is_complete(0)) != sizeof(char))> {}; + : public integral_constant::type>::value || (sizeof(boost::detail::check_is_complete(0)) != sizeof(char))> {}; #elif !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500) diff --git a/miniboost/boost/type_traits/is_constructible.hpp b/miniboost/boost/type_traits/is_constructible.hpp index da625994..6969cd63 100644 --- a/miniboost/boost/type_traits/is_constructible.hpp +++ b/miniboost/boost/type_traits/is_constructible.hpp @@ -51,7 +51,7 @@ namespace boost{ { BOOST_STATIC_ASSERT_MSG(::boost::is_complete::value, "The target type must be complete in order to test for constructibility"); }; - template struct is_constructible : public integral_constant::value && sizeof(detail::is_constructible_imp::test1(0)) == sizeof(boost::type_traits::yes_type)> + template struct is_constructible : public integral_constant::value && sizeof(boost::detail::is_constructible_imp::test1(0)) == sizeof(boost::type_traits::yes_type)> { BOOST_STATIC_ASSERT_MSG(::boost::is_complete::value, "The target type must be complete in order to test for constructibility"); }; diff --git a/miniboost/boost/type_traits/is_default_constructible.hpp b/miniboost/boost/type_traits/is_default_constructible.hpp index 9a4a0a78..04c023fe 100644 --- a/miniboost/boost/type_traits/is_default_constructible.hpp +++ b/miniboost/boost/type_traits/is_default_constructible.hpp @@ -58,7 +58,7 @@ namespace boost{ BOOST_STATIC_ASSERT_MSG(boost::is_complete::value, "Arguments to is_default_constructible must be complete types"); }; #else - template struct is_default_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> + template struct is_default_constructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> { BOOST_STATIC_ASSERT_MSG(boost::is_complete::value, "Arguments to is_default_constructible must be complete types"); }; diff --git a/miniboost/boost/type_traits/is_destructible.hpp b/miniboost/boost/type_traits/is_destructible.hpp index cc72fb7a..c32e758c 100644 --- a/miniboost/boost/type_traits/is_destructible.hpp +++ b/miniboost/boost/type_traits/is_destructible.hpp @@ -34,7 +34,7 @@ namespace boost{ } - template struct is_destructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> + template struct is_destructible : public integral_constant(0)) == sizeof(boost::type_traits::yes_type)> { BOOST_STATIC_ASSERT_MSG(boost::is_complete::value, "Arguments to is_destructible must be complete types"); }; diff --git a/miniboost/boost/version.hpp b/miniboost/boost/version.hpp index c9afbd98..912a59c8 100644 --- a/miniboost/boost/version.hpp +++ b/miniboost/boost/version.hpp @@ -19,7 +19,7 @@ // BOOST_VERSION / 100 % 1000 is the minor version // BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 106900 +#define BOOST_VERSION 107100 // // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,6 +27,6 @@ // number, y is the minor version number, and z is the patch level if not 0. // This is used by to select which library version to link to. -#define BOOST_LIB_VERSION "1_69" +#define BOOST_LIB_VERSION "1_71" #endif diff --git a/miniboost/endian.h b/miniboost/endian.h index 9c9ec17f..e62b7356 100644 --- a/miniboost/endian.h +++ b/miniboost/endian.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/errno.h b/miniboost/errno.h index fc8b496f..dde2107b 100644 --- a/miniboost/errno.h +++ b/miniboost/errno.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/features.h b/miniboost/features.h index 5bed0a49..bf47d881 100644 --- a/miniboost/features.h +++ b/miniboost/features.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -140,6 +140,7 @@ #undef __USE_FORTIFY_LEVEL #undef __KERNEL_STRICT_NAMES #undef __GLIBC_USE_DEPRECATED_GETS +#undef __GLIBC_USE_DEPRECATED_SCANF /* Suppress kernel-name space pollution unless user expressedly asks for it. */ @@ -401,6 +402,27 @@ # define __GLIBC_USE_DEPRECATED_GETS 1 #endif +/* GNU formerly extended the scanf functions with modified format + specifiers %as, %aS, and %a[...] that allocate a buffer for the + input using malloc. This extension conflicts with ISO C99, which + defines %a as a standalone format specifier that reads a floating- + point number; moreover, POSIX.1-2008 provides the same feature + using the modifier letter 'm' instead (%ms, %mS, %m[...]). + + We now follow C99 unless GNU extensions are active and the compiler + is specifically in C89 or C++98 mode (strict or not). For + instance, with GCC, -std=gnu11 will have C99-compliant scanf with + or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the + old extension. */ +#if (defined __USE_GNU \ + && (defined __cplusplus \ + ? (__cplusplus < 201103L && !defined __GXX_EXPERIMENTAL_CXX0X__) \ + : (!defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L))) +# define __GLIBC_USE_DEPRECATED_SCANF 1 +#else +# define __GLIBC_USE_DEPRECATED_SCANF 0 +#endif + /* Get definitions of __STDC_* predefined macros, if the compiler has not preincluded this header automatically. */ #include @@ -417,7 +439,7 @@ /* Major and minor version number of the GNU C library package. Use these macros to test for features in specific releases. */ #define __GLIBC__ 2 -#define __GLIBC_MINOR__ 28 +#define __GLIBC_MINOR__ 30 #define __GLIBC_PREREQ(maj, min) \ ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) diff --git a/miniboost/gnu/stubs-32.h b/miniboost/gnu/stubs-32.h index a421528d..1075e0c6 100644 --- a/miniboost/gnu/stubs-32.h +++ b/miniboost/gnu/stubs-32.h @@ -8,9 +8,7 @@ #endif #define __stub_chflags -#define __stub_fattach #define __stub_fchflags -#define __stub_fdetach #define __stub_gtty #define __stub_lchmod #define __stub_revoke diff --git a/miniboost/inttypes.h b/miniboost/inttypes.h index 69f8cb17..ddcb171b 100644 --- a/miniboost/inttypes.h +++ b/miniboost/inttypes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/limits.h b/miniboost/limits.h index 2e4fa683..08bb5248 100644 --- a/miniboost/limits.h +++ b/miniboost/limits.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/pthread.h b/miniboost/pthread.h index df049abf..a767d6f1 100644 --- a/miniboost/pthread.h +++ b/miniboost/pthread.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2018 Free Software Foundation, Inc. +/* Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -770,6 +770,13 @@ extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, __abstime) __THROWNL __nonnull ((1, 2)); #endif +#ifdef __USE_GNU +extern int pthread_mutex_clocklock (pthread_mutex_t *__restrict __mutex, + clockid_t __clockid, + const struct timespec *__restrict + __abstime) __THROWNL __nonnull ((1, 3)); +#endif + /* Unlock a mutex. */ extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __THROWNL __nonnull ((1)); @@ -909,6 +916,13 @@ extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, __abstime) __THROWNL __nonnull ((1, 2)); # endif +# ifdef __USE_GNU +extern int pthread_rwlock_clockrdlock (pthread_rwlock_t *__restrict __rwlock, + clockid_t __clockid, + const struct timespec *__restrict + __abstime) __THROWNL __nonnull ((1, 3)); +# endif + /* Acquire write lock for RWLOCK. */ extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); @@ -924,6 +938,13 @@ extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, __abstime) __THROWNL __nonnull ((1, 2)); # endif +# ifdef __USE_GNU +extern int pthread_rwlock_clockwrlock (pthread_rwlock_t *__restrict __rwlock, + clockid_t __clockid, + const struct timespec *__restrict + __abstime) __THROWNL __nonnull ((1, 3)); +# endif + /* Unlock RWLOCK. */ extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __THROWNL __nonnull ((1)); @@ -1003,6 +1024,21 @@ extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, const struct timespec *__restrict __abstime) __nonnull ((1, 2, 3)); +# ifdef __USE_GNU +/* Wait for condition variable COND to be signaled or broadcast until + ABSTIME measured by the specified clock. MUTEX is assumed to be + locked before. CLOCK is the clock to use. ABSTIME is an absolute + time specification against CLOCK's epoch. + + This function is a cancellation point and therefore not marked with + __THROW. */ +extern int pthread_cond_clockwait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex, + __clockid_t __clock_id, + const struct timespec *__restrict __abstime) + __nonnull ((1, 2, 4)); +# endif + /* Functions for handling condition variable attributes. */ /* Initialize condition variable attribute ATTR. */ diff --git a/miniboost/sched.h b/miniboost/sched.h index 619b3b3a..90ef6fcf 100644 --- a/miniboost/sched.h +++ b/miniboost/sched.h @@ -1,5 +1,5 @@ /* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/signal.h b/miniboost/signal.h index 87dc82a9..4c0de7f6 100644 --- a/miniboost/signal.h +++ b/miniboost/signal.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -370,6 +370,9 @@ extern int __libc_current_sigrtmax (void) __THROW; #define SIGRTMIN (__libc_current_sigrtmin ()) #define SIGRTMAX (__libc_current_sigrtmax ()) +/* System-specific extensions. */ +#include + __END_DECLS #endif /* not signal.h */ diff --git a/miniboost/stdc-predef.h b/miniboost/stdc-predef.h index c2ab78a2..5cc5eef2 100644 --- a/miniboost/stdc-predef.h +++ b/miniboost/stdc-predef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/stdint.h b/miniboost/stdint.h index 11fb0ebe..1ad538fc 100644 --- a/miniboost/stdint.h +++ b/miniboost/stdint.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2018 Free Software Foundation, Inc. +/* Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/stdlib.h b/miniboost/stdlib.h index 8e23e935..a9fd989d 100644 --- a/miniboost/stdlib.h +++ b/miniboost/stdlib.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -536,10 +536,11 @@ extern int lcong48_r (unsigned short int __param[7], #endif /* Use misc or X/Open. */ /* Allocate SIZE bytes of memory. */ -extern void *malloc (size_t __size) __THROW __attribute_malloc__ __wur; +extern void *malloc (size_t __size) __THROW __attribute_malloc__ + __attribute_alloc_size__ ((1)) __wur; /* Allocate NMEMB elements of SIZE bytes each, all initialized to 0. */ extern void *calloc (size_t __nmemb, size_t __size) - __THROW __attribute_malloc__ __wur; + __THROW __attribute_malloc__ __attribute_alloc_size__ ((1, 2)) __wur; /* Re-allocate the previously allocated block in PTR, making the new block SIZE bytes long. */ @@ -547,16 +548,17 @@ extern void *calloc (size_t __nmemb, size_t __size) the same pointer that was passed to it, aliasing needs to be allowed between objects pointed by the old and new pointers. */ extern void *realloc (void *__ptr, size_t __size) - __THROW __attribute_warn_unused_result__; + __THROW __attribute_warn_unused_result__ __attribute_alloc_size__ ((2)); -#ifdef __USE_GNU +#ifdef __USE_MISC /* Re-allocate the previously allocated block in PTR, making the new block large enough for NMEMB elements of SIZE bytes each. */ /* __attribute_malloc__ is not used, because if reallocarray returns the same pointer that was passed to it, aliasing needs to be allowed between objects pointed by the old and new pointers. */ extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size) - __THROW __attribute_warn_unused_result__; + __THROW __attribute_warn_unused_result__ + __attribute_alloc_size__ ((2, 3)); #endif /* Free a block allocated by `malloc', `realloc' or `calloc'. */ @@ -569,7 +571,8 @@ extern void free (void *__ptr) __THROW; #if (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) \ || defined __USE_MISC /* Allocate SIZE bytes on a page boundary. The storage cannot be freed. */ -extern void *valloc (size_t __size) __THROW __attribute_malloc__ __wur; +extern void *valloc (size_t __size) __THROW __attribute_malloc__ + __attribute_alloc_size__ ((1)) __wur; #endif #ifdef __USE_XOPEN2K diff --git a/miniboost/string.h b/miniboost/string.h index 150cfd8b..c38eea97 100644 --- a/miniboost/string.h +++ b/miniboost/string.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/strings.h b/miniboost/strings.h index f00d638f..5428bc4f 100644 --- a/miniboost/strings.h +++ b/miniboost/strings.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/sys/cdefs.h b/miniboost/sys/cdefs.h index 3f6fe3cc..f1bd994a 100644 --- a/miniboost/sys/cdefs.h +++ b/miniboost/sys/cdefs.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2018 Free Software Foundation, Inc. +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -256,8 +256,8 @@ /* Since version 4.5, gcc also allows one to specify the message printed when a deprecated function is used. clang claims to be gcc 4.2, but may also support this feature. */ -#if __GNUC_PREREQ (4,5) || \ - __glibc_clang_has_extension (__attribute_deprecated_with_message__) +#if __GNUC_PREREQ (4,5) \ + || __glibc_clang_has_extension (__attribute_deprecated_with_message__) # define __attribute_deprecated_msg__(msg) \ __attribute__ ((__deprecated__ (msg))) #else @@ -337,7 +337,7 @@ semantics. clang++ identifies itself as gcc-4.2, but has support for GNU inlining - semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and + semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and __GNUC_GNU_INLINE__ macro definitions. */ #if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ @@ -412,6 +412,14 @@ # define __glibc_has_attribute(attr) 0 #endif +#ifdef __has_include +/* Do not use a function-like macro, so that __has_include can inhibit + macro expansion. */ +# define __glibc_has_include __has_include +#else +# define __glibc_has_include(header) 0 +#endif + #if (!defined _Noreturn \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && !__GNUC_PREREQ (4,7)) @@ -431,6 +439,16 @@ # define __attribute_nonstring__ #endif +/* Undefine (also defined in libc-symbols.h). */ +#undef __attribute_copy__ +#if __GNUC_PREREQ (9, 0) +/* Copies attributes from the declaration or type referenced by + the argument. */ +# define __attribute_copy__(arg) __attribute__ ((__copy__ (arg))) +#else +# define __attribute_copy__(arg) +#endif + #if (!defined _Static_assert && !defined __cplusplus \ && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ && (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__)) diff --git a/miniboost/sys/param.h b/miniboost/sys/param.h index 359bc960..bf988a97 100644 --- a/miniboost/sys/param.h +++ b/miniboost/sys/param.h @@ -1,5 +1,5 @@ /* Compatibility header for old-style Unix parameters and limits. - Copyright (C) 1995-2018 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/sys/select.h b/miniboost/sys/select.h index 6dd0c832..8b10702b 100644 --- a/miniboost/sys/select.h +++ b/miniboost/sys/select.h @@ -1,5 +1,5 @@ /* `fd_set' type and related macros, and `select'/`pselect' declarations. - Copyright (C) 1996-2018 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/sys/time.h b/miniboost/sys/time.h index 4166a5b1..5dbc7fc6 100644 --- a/miniboost/sys/time.h +++ b/miniboost/sys/time.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -159,9 +159,9 @@ extern int futimesat (int __fd, const char *__file, # define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) # define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) # define timercmp(a, b, CMP) \ - (((a)->tv_sec == (b)->tv_sec) ? \ - ((a)->tv_usec CMP (b)->tv_usec) : \ - ((a)->tv_sec CMP (b)->tv_sec)) + (((a)->tv_sec == (b)->tv_sec) \ + ? ((a)->tv_usec CMP (b)->tv_usec) \ + : ((a)->tv_sec CMP (b)->tv_sec)) # define timeradd(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \ diff --git a/miniboost/sys/types.h b/miniboost/sys/types.h index db524d6c..0e37b1ce 100644 --- a/miniboost/sys/types.h +++ b/miniboost/sys/types.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -154,37 +154,20 @@ typedef unsigned int uint; #include -#if !__GNUC_PREREQ (2, 7) - /* These were defined by ISO C without the first `_'. */ -typedef unsigned char u_int8_t; -typedef unsigned short int u_int16_t; -typedef unsigned int u_int32_t; -# if __WORDSIZE == 64 -typedef unsigned long int u_int64_t; -# else -__extension__ typedef unsigned long long int u_int64_t; -# endif - -typedef int register_t; - -#else - -/* For GCC 2.7 and later, we can use specific type-size attributes. */ -# define __u_intN_t(N, MODE) \ - typedef unsigned int u_int##N##_t __attribute__ ((__mode__ (MODE))) - -__u_intN_t (8, __QI__); -__u_intN_t (16, __HI__); -__u_intN_t (32, __SI__); -__u_intN_t (64, __DI__); +typedef __uint8_t u_int8_t; +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; +#if __GNUC_PREREQ (2, 7) typedef int register_t __attribute__ ((__mode__ (__word__))); - +#else +typedef int register_t; +#endif /* Some code from BIND tests this macro to see if the types above are defined. */ -#endif #define __BIT_TYPES_DEFINED__ 1 diff --git a/miniboost/sys/ucontext.h b/miniboost/sys/ucontext.h index 7367726a..3d883c2b 100644 --- a/miniboost/sys/ucontext.h +++ b/miniboost/sys/ucontext.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2018 Free Software Foundation, Inc. +/* Copyright (C) 2001-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/time.h b/miniboost/time.h index 4b55e344..cba6d152 100644 --- a/miniboost/time.h +++ b/miniboost/time.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/miniboost/unistd.h b/miniboost/unistd.h index a8cf28b5..55a989f7 100644 --- a/miniboost/unistd.h +++ b/miniboost/unistd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2018 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -1166,6 +1166,9 @@ int getentropy (void *__buffer, size_t __length) __wur; # include #endif +/* System-specific extensions. */ +#include + __END_DECLS #endif /* unistd.h */ diff --git a/miniboost/wchar.h b/miniboost/wchar.h index 6c94f3eb..20deca90 100644 --- a/miniboost/wchar.h +++ b/miniboost/wchar.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2018 Free Software Foundation, Inc. +/* Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -632,13 +632,11 @@ extern int swscanf (const wchar_t *__restrict __s, const wchar_t *__restrict __format, ...) __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */; -# if defined __USE_ISOC99 && !defined __USE_GNU \ - && (!defined __LDBL_COMPAT || !defined __REDIRECT) \ - && (defined __STRICT_ANSI__ || defined __USE_XOPEN2K) +/* For historical reasons, the C99-compliant versions of the scanf + functions are at alternative names. When __LDBL_COMPAT is in + effect, this is handled in bits/wchar-ldbl.h. */ +#if !__GLIBC_USE (DEPRECATED_SCANF) && !defined __LDBL_COMPAT # ifdef __REDIRECT -/* For strict ISO C99 or POSIX compliance disallow %as, %aS and %a[ - GNU extension which conflicts with valid %a followed by letter - s, S or [. */ extern int __REDIRECT (fwscanf, (__FILE *__restrict __stream, const wchar_t *__restrict __format, ...), __isoc99_fwscanf)