Mercurial > octave
changeset 21785:c9f8a7f7915e
use forward declarations instead of including oct-inttypes.h where possible
* oct-inttypes-fwd.h: New file.
* liboctave/util/module.mk: Update.
* oct-inttypes.h, pr-output.h, Array.cc, dNDArray.h, fNDArray.h,
idx-vector.h, int16NDArray.h, int32NDArray.h, int64NDArray.h,
int8NDArray.h, uint16NDArray.h, uint32NDArray.h, uint64NDArray.h,
uint8NDArray.h, lo-mappers.h, data-conv.h: Include oct-inttypes-fwd.h
instead of oct-inttypes.h where possible.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 27 May 2016 15:19:45 -0400 |
parents | d13883644981 |
children | df064166f180 |
files | libinterp/corefcn/pr-output.h liboctave/array/Array.cc liboctave/array/dNDArray.h liboctave/array/fNDArray.h liboctave/array/idx-vector.h liboctave/array/int16NDArray.h liboctave/array/int32NDArray.h liboctave/array/int64NDArray.h liboctave/array/int8NDArray.h liboctave/array/uint16NDArray.h liboctave/array/uint32NDArray.h liboctave/array/uint64NDArray.h liboctave/array/uint8NDArray.h liboctave/numeric/lo-mappers.h liboctave/util/data-conv.h liboctave/util/module.mk liboctave/util/oct-inttypes-fwd.h liboctave/util/oct-inttypes.h |
diffstat | 18 files changed, 70 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/pr-output.h Fri May 27 15:16:47 2016 -0400 +++ b/libinterp/corefcn/pr-output.h Fri May 27 15:19:45 2016 -0400 @@ -28,6 +28,7 @@ #include <iosfwd> #include "oct-cmplx.h" +#include "oct-inttypes-fwd.h" template <typename T> class Array; class ComplexMatrix; @@ -51,9 +52,7 @@ class Cell; class octave_value; -#include "intNDArray.h" -#include "oct-inttypes.h" - +template <typename T> class intNDArray; extern OCTINTERP_API void octave_print_internal (std::ostream& os, bool d,
--- a/liboctave/array/Array.cc Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/Array.cc Fri May 27 15:19:45 2016 -0400 @@ -39,6 +39,7 @@ #include "Array-util.h" #include "idx-vector.h" #include "lo-error.h" +#include "lo-mappers.h" #include "oct-locbuf.h" // One dimensional array class. Handles the reference counting for
--- a/liboctave/array/dNDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/dNDArray.h Fri May 27 15:19:45 2016 -0400 @@ -26,12 +26,13 @@ #include "octave-config.h" #include "MArray.h" -#include "intNDArray.h" #include "mx-defs.h" #include "mx-op-decl.h" #include "bsxfun-decl.h" +template <typename T> class intNDArray; + class OCTAVE_API NDArray : public MArray<double>
--- a/liboctave/array/fNDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/fNDArray.h Fri May 27 15:19:45 2016 -0400 @@ -26,12 +26,13 @@ #include "octave-config.h" #include "MArray.h" -#include "intNDArray.h" #include "mx-defs.h" #include "mx-op-decl.h" #include "bsxfun-decl.h" +template <typename T> class intNDArray; + class OCTAVE_API FloatNDArray : public MArray<float>
--- a/liboctave/array/idx-vector.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/idx-vector.h Fri May 27 15:19:45 2016 -0400 @@ -35,7 +35,7 @@ #include <memory> #include "dim-vector.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "oct-refcount.h" template <typename T> class Array;
--- a/liboctave/array/int16NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/int16NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_int16> int16NDArray;
--- a/liboctave/array/int32NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/int32NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_int32> int32NDArray;
--- a/liboctave/array/int64NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/int64NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_int64> int64NDArray;
--- a/liboctave/array/int8NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/int8NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_int8> int8NDArray;
--- a/liboctave/array/uint16NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/uint16NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_uint16> uint16NDArray;
--- a/liboctave/array/uint32NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/uint32NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_uint32> uint32NDArray;
--- a/liboctave/array/uint64NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/uint64NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_uint64> uint64NDArray;
--- a/liboctave/array/uint8NDArray.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/array/uint8NDArray.h Fri May 27 15:19:45 2016 -0400 @@ -27,7 +27,7 @@ #include "intNDArray.h" #include "mx-op-decl.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" #include "bsxfun-decl.h" typedef intNDArray<octave_uint8> uint8NDArray;
--- a/liboctave/numeric/lo-mappers.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/numeric/lo-mappers.h Fri May 27 15:19:45 2016 -0400 @@ -29,7 +29,6 @@ #include <limits> #include "oct-cmplx.h" -#include "oct-inttypes.h" #include "lo-math.h" #include "lo-ieee.h"
--- a/liboctave/util/data-conv.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/util/data-conv.h Fri May 27 15:19:45 2016 -0400 @@ -28,7 +28,7 @@ #include <limits> #include "mach-info.h" -#include "oct-inttypes.h" +#include "oct-inttypes-fwd.h" class OCTAVE_API
--- a/liboctave/util/module.mk Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/util/module.mk Fri May 27 15:19:45 2016 -0400 @@ -22,6 +22,7 @@ liboctave/util/oct-cmplx.h \ liboctave/util/oct-glob.h \ liboctave/util/oct-inttypes.h \ + liboctave/util/oct-inttypes-fwd.h \ liboctave/util/oct-locbuf.h \ liboctave/util/oct-mutex.h \ liboctave/util/oct-refcount.h \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/util/oct-inttypes-fwd.h Fri May 27 15:19:45 2016 -0400 @@ -0,0 +1,40 @@ +/* + +Copyright (C) 2016 John W. Eaton + +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 +<http://www.gnu.org/licenses/>. + +*/ + +#if ! defined (octave_oct_inttypes_fwd_h) +#define octave_oct_inttypes_fwd_h 1 + +#include "octave-config.h" + +template <typename T> class octave_int; + +typedef octave_int<int8_t> octave_int8; +typedef octave_int<int16_t> octave_int16; +typedef octave_int<int32_t> octave_int32; +typedef octave_int<int64_t> octave_int64; + +typedef octave_int<uint8_t> octave_uint8; +typedef octave_int<uint16_t> octave_uint16; +typedef octave_int<uint32_t> octave_uint32; +typedef octave_int<uint64_t> octave_uint64; + +#endif
--- a/liboctave/util/oct-inttypes.h Fri May 27 15:16:47 2016 -0400 +++ b/liboctave/util/oct-inttypes.h Fri May 27 15:19:45 2016 -0400 @@ -35,6 +35,18 @@ #include "lo-math.h" #include "lo-mappers.h" +template <typename T> class octave_int; + +typedef octave_int<int8_t> octave_int8; +typedef octave_int<int16_t> octave_int16; +typedef octave_int<int32_t> octave_int32; +typedef octave_int<int64_t> octave_int64; + +typedef octave_int<uint8_t> octave_uint8; +typedef octave_int<uint16_t> octave_uint16; +typedef octave_int<uint32_t> octave_uint32; +typedef octave_int<uint64_t> octave_uint64; + #if defined (OCTAVE_INT_USE_LONG_DOUBLE) namespace octave @@ -1133,16 +1145,6 @@ return a & mask; } -typedef octave_int<int8_t> octave_int8; -typedef octave_int<int16_t> octave_int16; -typedef octave_int<int32_t> octave_int32; -typedef octave_int<int64_t> octave_int64; - -typedef octave_int<uint8_t> octave_uint8; -typedef octave_int<uint16_t> octave_uint16; -typedef octave_int<uint32_t> octave_uint32; -typedef octave_int<uint64_t> octave_uint64; - #if defined (OCTAVE_ENSURE_LONG_DOUBLE_OPERATIONS_ARE_NOT_TRUNCATED) #define DECLARE_EXTERNAL_LONG_DOUBLE_OP(T, OP) \