annotate oct-conf-post-public.in.h @ 32052:d77b987a7e0d

Provide more informative error messages for various bad calling forms to set() (bug #64072) * graphics.cc (graphics_object::set (const octave_value_list& args)): Clarify summary of function. Remove unnecessary FIXME. Move BIST tests to below Fset function. * graphics.cc (Fset): Check if first argument is a string and process as NAME/VALUE pair. Provide explicit error message about what is wrong if only NAME is given and no matching VALUE. Directly call set_value_or_default() rather than forming a 2-element octave_value_list and calling set() function which accepts octave_value_list objects. Provide explicit error message if cell array of PROPERTIES is given with no following cell array of VALUES. If input validation fails just report "invalid syntax" rather than trying to suggest which input was at fault.
author Rik <rik@octave.org>
date Tue, 25 Apr 2023 07:50:29 -0700
parents 56809fe23e53
children 61d014959a8b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 ////////////////////////////////////////////////////////////////////////
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 //
31706
597f3ee61a48 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 31605
diff changeset
3 // Copyright (C) 1993-2023 The Octave Project Developers
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 // distribution or <https://octave.org/copyright/>.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 // This file is part of Octave.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 // under the terms of the GNU General Public License as published by
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 // (at your option) any later version.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 // GNU General Public License for more details.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 // You should have received a copy of the GNU General Public License
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 // along with Octave; see the file COPYING. If not, see
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 // <https://www.gnu.org/licenses/>.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 //
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 ////////////////////////////////////////////////////////////////////////
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 #if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 # include <cinttypes>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 # include <inttypes.h>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31
31605
e88a07dec498 maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents: 31487
diff changeset
32 #define OCTAVE_BEGIN_NAMESPACE(name) namespace name {
e88a07dec498 maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents: 31487
diff changeset
33 #define OCTAVE_END_NAMESPACE(name) }
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 /* The C++ standard is evolving to allow attribute hints in a
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 compiler-independent manner. In C++ 2011 support for noreturn was
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 added. In C++ 2014 support for deprecated was added. The Octave
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 code base has been future-proofed by using macros of the form
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 OCTAVE_ATTRIBUTE_NAME in place of vendor specific attribute
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 mechanisms. As compilers evolve, the underlying implementation can
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 be changed with the macro definitions below. FIXME: Update macros
31462
fcbbb498d4af mk-builtins.pl: Don't generate deprecated inline functions without octave:: namespace qualifier.
Rik <rik@octave.org>
parents: 31400
diff changeset
42 to use C++ standard attribute syntax when Octave moves to C++ 2014
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 standard. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 #if defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 /* The following attributes are used with gcc and clang compilers. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__ ("[" #ver "]: " msg)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 # define OCTAVE_DEPRECATED(ver, msg) __attribute__ ((__deprecated__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52 # define HAVE_OCTAVE_DEPRECATED_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54 # define OCTAVE_NORETURN __attribute__ ((__noreturn__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55 # define HAVE_OCTAVE_NORETURN_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57 # define OCTAVE_UNUSED __attribute__ ((__unused__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58 # define HAVE_OCTAVE_UNUSED_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
59 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60 # define OCTAVE_DEPRECATED(ver, msg)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 # define OCTAVE_NORETURN
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62 # define OCTAVE_UNUSED
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
63
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
64 /* # undef HAVE_OCTAVE_DEPRECATED_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65 /* # undef HAVE_OCTAVE_NORETURN_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
66 /* # undef HAVE_OCTAVE_UNUSED_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
67 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
69 #if defined (__MINGW32__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
70 /* MinGW requires special handling due to different format specifiers
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
71 * on different platforms. The macro __MINGW_PRINTF_FORMAT maps to
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
72 * either gnu_printf or ms_printf depending on where we are compiling
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
73 * to avoid warnings on format specifiers that are legal.
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
74 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331349 */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
75 # if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
76 # include <cstdio>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
77 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78 # include <stdio.h>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
79 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
80
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
81 # define OCTAVE_FORMAT_PRINTF(stringIndex, firstToCheck) \
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
82 __attribute__ ((format (__MINGW_PRINTF_FORMAT, stringIndex, firstToCheck)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
83
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
84 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
85 #elif defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
86 /* The following attributes are used with gcc and clang compilers. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
87 # define OCTAVE_FORMAT_PRINTF(index, first) \
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
88 __attribute__ ((__format__(printf, index, first)))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
89
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
90 # define HAVE_OCTAVE_FORMAT_PRINTF_ATTR 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
91 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
92 # define OCTAVE_FORMAT_PRINTF(index, first)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
93
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
94 /* # undef HAVE_OCTAVE_FORMAT_PRINTF_ATTR */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
95 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
96
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97 #if ! defined (OCTAVE_FALLTHROUGH)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
98 # if defined (__cplusplus) && __cplusplus > 201402L
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
99 # define OCTAVE_FALLTHROUGH [[fallthrough]]
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
100 # elif defined (__GNUC__) && __GNUC__ < 7
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
101 # define OCTAVE_FALLTHROUGH ((void) 0)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
102 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
103 # define OCTAVE_FALLTHROUGH __attribute__ ((__fallthrough__))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
104 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
105 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
106
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
107 #if defined (__cplusplus)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
108 template <typename T>
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
109 static inline void
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
110 octave_unused_parameter (const T&)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
111 { }
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
113 # define octave_unused_parameter(param) (void) param;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
114 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
115
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116 #if defined (OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
117 # if defined (_WIN32) || defined (__CYGWIN__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
118 # if defined (__GNUC__)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
119 /* GCC */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
120 # define OCTAVE_EXPORT __attribute__ ((dllexport))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
121 # define OCTAVE_IMPORT __attribute__ ((dllimport))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
122 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
123 /* MSVC */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
124 # define OCTAVE_EXPORT __declspec(dllexport)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
125 # define OCTAVE_IMPORT __declspec(dllimport)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
127 # else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
128 /* All other platforms. */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
129 # define OCTAVE_EXPORT __attribute__ ((visibility ("default")))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
130 # define OCTAVE_IMPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
131 # endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
132 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133 # define OCTAVE_EXPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
134 # define OCTAVE_IMPORT
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
135 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
136
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
137 /* API macros for liboctave */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
138 #if defined (OCTAVE_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
139 # define OCTAVE_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
140 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
141 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
142 # define OCTAVE_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
143 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
144 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
145 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
146 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
147 # define OCTAVE_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
148 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
149 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
150 # define OCTAVE_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
151 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
152 # define OCTAVE_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
153 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
154 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
155 # define OCTAVE_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
156 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
157 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
158 # define OCTAVE_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
159 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
160 # define OCTAVE_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
161 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
162 # define OCTAVE_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
163 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
164 # define OCTAVE_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
165 # define OCTAVE_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
166 # define OCTAVE_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
167 # define OCTAVE_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
168 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
170 /* API macros for liboctinterp */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
171 #if defined (OCTINTERP_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 # define OCTINTERP_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
173 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
174 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
175 # define OCTINTERP_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
176 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
177 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
178 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
179 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
180 # define OCTINTERP_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
181 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
182 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
183 # define OCTINTERP_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
184 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
185 # define OCTINTERP_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
186 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
187 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
188 # define OCTINTERP_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
189 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
190 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
191 # define OCTINTERP_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
192 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
193 # define OCTINTERP_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
194 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
195 # define OCTINTERP_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
196 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
197 # define OCTINTERP_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
198 # define OCTINTERP_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
199 # define OCTINTERP_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
200 # define OCTINTERP_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
201 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
202
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
203 /* API macros for the Array class in liboctave and liboctinterp */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
204 #if (defined (OCTAVE_DLL) || defined (OCTINTERP_DLL))
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
205 # define OCTARRAY_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
206 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
207 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
208 # define OCTARRAY_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
209 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
210 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
211 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
212 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
213 # define OCTARRAY_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
214 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
215 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
216 # define OCTARRAY_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
217 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
218 # define OCTARRAY_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
219 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
220 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
221 # define OCTARRAY_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
222 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
223 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
224 # define OCTARRAY_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
225 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
226 # define OCTARRAY_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
227 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
228 # define OCTARRAY_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
229 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
230 # define OCTARRAY_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
231 # define OCTARRAY_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
232 # define OCTARRAY_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
233 # define OCTARRAY_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
234 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
235
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
236 /* API macros for libinterp/graphics */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
237 #if defined (OCTGRAPHICS_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
238 # define OCTGRAPHICS_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
239 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
240 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
241 # define OCTGRAPHICS_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
242 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
243 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
244 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
245 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
246 # define OCTGRAPHICS_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
247 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
248 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
249 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
250 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
251 # define OCTGRAPHICS_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
252 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
253 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
254 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
255 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
256 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
257 # define OCTGRAPHICS_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
258 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
259 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
260 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
261 # define OCTGRAPHICS_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
262 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
263 # define OCTGRAPHICS_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
264 # define OCTGRAPHICS_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
265 # define OCTGRAPHICS_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
266 # define OCTGRAPHICS_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
267 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
268
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
269 /* API macros for libgui */
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
270 #if defined (OCTGUI_DLL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
271 # define OCTGUI_API OCTAVE_EXPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
272 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
273 # if defined (_WIN32) || defined (__CYGWIN__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
274 # define OCTGUI_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
275 # if defined(__MINGW32__)
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
276 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
277 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
278 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
279 # define OCTGUI_EXTERN_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
280 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
281 # endif
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
282 # define OCTGUI_OVERRIDABLE_FUNC_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
283 # else
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
284 # define OCTGUI_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
285 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_EXPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
286 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
287 # define OCTGUI_OVERRIDABLE_FUNC_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
288 # endif
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
289 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
290 # define OCTGUI_API OCTAVE_IMPORT
31487
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
291 # if defined (_WIN32) || defined (__CYGWIN__)
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
292 # define OCTGUI_EXCEPTION_API OCTAVE_IMPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
293 # else
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
294 # define OCTGUI_EXCEPTION_API OCTAVE_EXPORT
2ec625c04947 Mark exceptions with default visibility also where they are used (bug #61704).
Markus Mützel <markus.muetzel@gmx.de>
parents: 31400
diff changeset
295 # endif
31400
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
296 # define OCTGUI_TEMPLATE_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
297 # define OCTGUI_EXTERN_TEMPLATE_API OCTAVE_IMPORT
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
298 # define OCTGUI_CLASS_TEMPLATE_INSTANTIATION_API
e7fc6251b698 Use more specialized API flags for template classes (bug #61711).
Markus Mützel <markus.muetzel@gmx.de>
parents: 30827
diff changeset
299 # define OCTGUI_OVERRIDABLE_FUNC_API
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
300 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
301
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
302 #if defined (OCTAVE_ENABLE_64)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
303 # define OCTAVE_IDX_TYPE_FORMAT PRId64
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
304 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
305 # define OCTAVE_IDX_TYPE_FORMAT PRId32
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
306 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
307
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
308 #if OCTAVE_SIZEOF_F77_INT_TYPE == 8
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
309 # define OCTAVE_F77_INT_TYPE_FORMAT PRId64
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
310 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
311 # define OCTAVE_F77_INT_TYPE_FORMAT PRId32
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
312 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
313
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
314 #define OCTAVE_HAVE_F77_INT_TYPE 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
315
30827
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
316 /* time type in API is always 64 bits wide */
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
317 #define OCTAVE_TIME_T int64_t
3e395f6fc03a maint: Merge stable to default.
Markus Mützel <markus.muetzel@gmx.de>
parents: 30580
diff changeset
318
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
319 #if defined (__cplusplus) && ! defined (OCTAVE_THREAD_LOCAL)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
320 # define OCTAVE_THREAD_LOCAL
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
321 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
322
31836
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
323 #if defined (__cplusplus)
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
324 # define OCTAVE_DISABLE_COPY(X) \
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
325 X (const X&) = delete; \
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
326 X& operator = (const X&) = delete;
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
327
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
328 # define OCTAVE_DISABLE_MOVE(X) \
31853
5c046a512888 fix macro for disabling move ctor and assignment op
John W. Eaton <jwe@octave.org>
parents: 31836
diff changeset
329 X (X&&) = delete; \
31836
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
330 X (const X&&) = delete; \
31853
5c046a512888 fix macro for disabling move ctor and assignment op
John W. Eaton <jwe@octave.org>
parents: 31836
diff changeset
331 X& operator = (X&&) = delete; \
31836
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
332 X& operator = (const X&&) = delete;
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
333
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
334 # define OCTAVE_DISABLE_COPY_MOVE(X) \
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
335 OCTAVE_DISABLE_COPY (X) \
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
336 OCTAVE_DISABLE_MOVE (X)
31854
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
337
31883
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
338 # define OCTAVE_DISABLE_COPY_MOVE_ASGN(X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
339 X& operator = (const X&) = delete; \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
340 X& operator = (X&&) = delete; \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
341 X& operator = (const X&&) = delete;
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
342
31854
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
343 # define OCTAVE_DISABLE_CONSTRUCT_COPY_MOVE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
344 X () = delete; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
345 OCTAVE_DISABLE_COPY (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
346 OCTAVE_DISABLE_MOVE (X)
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
347
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
348 # define OCTAVE_DISABLE_CONSTRUCT_COPY_MOVE_DELETE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
349 X () = delete; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
350 OCTAVE_DISABLE_COPY (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
351 OCTAVE_DISABLE_MOVE (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
352 ~X () = delete;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
353
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
354 # define OCTAVE_DEFAULT_COPY(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
355 X (const X&) = default; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
356 X& operator = (const X&) = default;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
357
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
358 # define OCTAVE_DEFAULT_MOVE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
359 X (X&&) = default; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
360 X& operator = (X&&) = default;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
361
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
362 # define OCTAVE_DEFAULT_COPY_MOVE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
363 OCTAVE_DEFAULT_COPY (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
364 OCTAVE_DEFAULT_MOVE (X)
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
365
31883
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
366 # define OCTAVE_DEFAULT_COPY_MOVE_CTOR(X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
367 X (const X&) = default; \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
368 X (X&&) = default;
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
369
31854
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
370 # define OCTAVE_DEFAULT_CONSTRUCT_COPY(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
371 X () = default; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
372 OCTAVE_DEFAULT_COPY (X)
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
373
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
374 # define OCTAVE_DEFAULT_CONSTRUCT_COPY_MOVE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
375 X () = default; \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
376 OCTAVE_DEFAULT_COPY_MOVE (X)
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
377
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
378 # define OCTAVE_DEFAULT_COPY_DELETE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
379 OCTAVE_DEFAULT_COPY (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
380 ~X () = default;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
381
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
382 # define OCTAVE_DEFAULT_COPY_MOVE_DELETE(X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
383 OCTAVE_DEFAULT_COPY_MOVE (X) \
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
384 ~X () = default;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
385
31883
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
386 # define OCTAVE_DEFAULT_CONSTRUCT_DELETE(X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
387 X () = default; \
31854
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
388 ~X () = default;
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
389
31883
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
390 # define OCTAVE_DEFAULT_CONSTRUCT_COPY_DELETE(X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
391 OCTAVE_DEFAULT_CONSTRUCT_DELETE (X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
392 OCTAVE_DEFAULT_COPY (X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
393
31854
8c37bbe334d4 new macros for disabling and defining default ctors, dtors, and assign ops
John W. Eaton <jwe@octave.org>
parents: 31853
diff changeset
394 # define OCTAVE_DEFAULT_CONSTRUCT_COPY_MOVE_DELETE(X) \
31883
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
395 OCTAVE_DEFAULT_CONSTRUCT_DELETE (X) \
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
396 OCTAVE_DEFAULT_COPY_MOVE (X)
56809fe23e53 eliminate some clang warnings about defaulted functions being deleted
John W. Eaton <jwe@octave.org>
parents: 31854
diff changeset
397
31836
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
398 #endif
2bf580e9f423 new macros for disabling class copy and move member functions
John W. Eaton <jwe@octave.org>
parents: 31707
diff changeset
399
30580
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
400 typedef OCTAVE_IDX_TYPE octave_idx_type;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
401 typedef OCTAVE_F77_INT_TYPE octave_f77_int_type;
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
402
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
403 /* Backward compatibility */
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
404
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
405 #if defined (OCTAVE_ENABLE_64)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
406 # define USE_64_BIT_IDX_T 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
407 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
408
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
409 #if defined (OCTAVE_ENABLE_OPENMP)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
410 # define HAVE_OPENMP 1
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
411 #endif
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
412
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
413 #if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE)
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
414 # define OCTAVE_FLOAT_TRUNCATE volatile
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
415 #else
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
416 # define OCTAVE_FLOAT_TRUNCATE
fdc30b576333 eliminate code duplication in oct-conf-post.in.h and octave-config.h
John W. Eaton <jwe@octave.org>
parents:
diff changeset
417 #endif