# HG changeset patch # User Markus Mützel # Date 1639766508 -3600 # Node ID cd5836f814b84e56528583e437318d8928e10277 # Parent 6e8a4dacc0143405db1bf512e3f65a7eb968a8c5# Parent 838e73617671e8fd0f9f6b1bb3979c958d7fdda0 maint: merge stable to default. diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-class.h --- a/libinterp/octave-value/cdef-class.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-class.h Fri Dec 17 19:41:48 2021 +0100 @@ -34,6 +34,7 @@ #include "oct-refcount.h" +#include "cdef-fwd.h" #include "cdef-method.h" #include "cdef-object.h" #include "cdef-package.h" @@ -48,6 +49,7 @@ class tree_classdef; class + OCTINTERP_API cdef_class : public cdef_meta_object { private: diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-fwd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libinterp/octave-value/cdef-fwd.h Fri Dec 17 19:41:48 2021 +0100 @@ -0,0 +1,38 @@ +//////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2021 The Octave Project Developers +// +// See the file COPYRIGHT.md in the top-level directory of this +// distribution or . +// +// This file is part of Octave. +// +// Octave is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Octave 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Octave; see the file COPYING. If not, see +// . +// +//////////////////////////////////////////////////////////////////////// + +#if ! defined (octave_cdef_fwd_h) +#define octave_cdef_fwd_h 1 + +#include "octave-config.h" + +namespace octave +{ + class OCTINTERP_API cdef_class; + class OCTINTERP_API cdef_object; + class OCTINTERP_API cdef_package; +} + +#endif diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-manager.h --- a/libinterp/octave-value/cdef-manager.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-manager.h Fri Dec 17 19:41:48 2021 +0100 @@ -29,6 +29,7 @@ #include "octave-config.h" #include "cdef-class.h" +#include "cdef-fwd.h" #include "cdef-method.h" #include "cdef-package.h" #include "cdef-property.h" @@ -38,7 +39,9 @@ { class interpreter; - class cdef_manager + class + OCTINTERP_API + cdef_manager { public: diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-method.h --- a/libinterp/octave-value/cdef-method.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-method.h Fri Dec 17 19:41:48 2021 +0100 @@ -40,6 +40,7 @@ namespace octave { class + OCTINTERP_API cdef_method : public cdef_meta_object { friend class cdef_class; diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-object.h --- a/libinterp/octave-value/cdef-object.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-object.h Fri Dec 17 19:41:48 2021 +0100 @@ -33,6 +33,7 @@ #include "oct-refcount.h" +#include "cdef-fwd.h" #include "error.h" #include "oct-map.h" #include "ov.h" @@ -40,9 +41,6 @@ namespace octave { - class cdef_object; - class cdef_class; - // This is mainly a bootstrap class to declare the expected interface. // The actual base class is cdef_class_base, which is declared after // cdef_object, such that it can contain cdef_object objects. @@ -201,6 +199,7 @@ }; class + OCTINTERP_API cdef_object { public: @@ -352,6 +351,7 @@ }; class + OCTINTERP_API cdef_object_base : public cdef_object_rep { public: @@ -389,6 +389,7 @@ }; class + OCTINTERP_API cdef_object_array : public cdef_object_base { public: @@ -456,6 +457,7 @@ }; class + OCTINTERP_API cdef_object_scalar : public cdef_object_base { public: @@ -542,6 +544,7 @@ }; class + OCTINTERP_API handle_cdef_object : public cdef_object_scalar { public: @@ -577,6 +580,7 @@ }; class + OCTINTERP_API value_cdef_object : public cdef_object_scalar { public: @@ -607,6 +611,7 @@ }; class + OCTINTERP_API cdef_meta_object_rep : public handle_cdef_object { public: @@ -654,6 +659,7 @@ }; class + OCTINTERP_API cdef_meta_object : public cdef_object { public: diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-package.h --- a/libinterp/octave-value/cdef-package.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-package.h Fri Dec 17 19:41:48 2021 +0100 @@ -34,6 +34,7 @@ #include "oct-refcount.h" +#include "cdef-fwd.h" #include "cdef-object.h" #include "ov.h" @@ -42,6 +43,7 @@ class interpreter; class + OCTINTERP_API cdef_package : public cdef_meta_object { friend class cdef_class; diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-property.h --- a/libinterp/octave-value/cdef-property.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-property.h Fri Dec 17 19:41:48 2021 +0100 @@ -41,6 +41,7 @@ namespace octave { class + OCTINTERP_API cdef_property : public cdef_meta_object { friend class cdef_class; diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/cdef-utils.h --- a/libinterp/octave-value/cdef-utils.h Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/cdef-utils.h Fri Dec 17 19:41:48 2021 +0100 @@ -31,14 +31,13 @@ #include #include +#include "cdef-fwd.h" + class octave_value; class Cell; namespace octave { - class cdef_class; - class cdef_package; - extern OCTINTERP_API std::string get_base_name (const std::string& nm); diff -r 6e8a4dacc014 -r cd5836f814b8 libinterp/octave-value/module.mk --- a/libinterp/octave-value/module.mk Thu Dec 16 23:06:35 2021 +0100 +++ b/libinterp/octave-value/module.mk Fri Dec 17 19:41:48 2021 +0100 @@ -19,6 +19,7 @@ OCTAVE_VALUE_INC = \ %reldir%/cdef-class.h \ + %reldir%/cdef-fwd.h \ %reldir%/cdef-manager.h \ %reldir%/cdef-method.h \ %reldir%/cdef-object.h \