Commit Graph

68 Commits

Author SHA1 Message Date
8cfb483054 STYLE: some general spelling fixes 2020-05-04 09:15:21 +02:00
d7969b1ba4 ENH: preserve tokenized directive and variable types 2020-02-18 13:51:20 +01:00
d7c18a328c STYLE: simplify/shorten some token names 2020-01-20 10:15:50 +01:00
21456b8cdc BUG: verbatim token output strips type (#1497)
- use os::write(token) for verbatim string to preserve its type
2020-01-20 10:09:58 +01:00
cc16bc9338 STYLE: comments, spelling in token.H 2019-12-07 16:46:49 +01:00
b0c88dff58 ENH: treat self-assignment as no-op instead of a Fatal (#1473)
- this can help if using std algorithms that return a const reference
  such as std::min() does.
2019-11-05 11:10:49 +01:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
6b0e77ce00 STYLE: adjust doxygen for token, add DOLLAR as punctuation char 2019-10-08 18:43:38 +02:00
c9cb4ce34f ENH: minor improvements, cleanup of token class
- relax casting rules
  * down-cast of labelToken to boolToken
  * up-cast of wordToken to stringToken.
    Can use isStringType() test for word or string types

- simplify constructors, move construct etc.

- expose reset() method as public, which resets to UNDEFINED and
  clears allocated storage etc.

DEFEATURE: remove assign from word or string pointer.

- This was deprecated 2017-11 and now removed.
  For this type of content transfer, move assignment should be used
  instead of stealing pointers.
2019-08-20 17:48:31 +02:00
e95ab402fd DOC: refer string::expand documentation to stringOps::expand 2019-08-07 14:45:06 +02:00
fb09f56aba ENH: use FatalErrorInLookup macros (#1362) 2019-07-12 18:00:00 +02:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
ffec4c6fa7 STYLE: more consistent formatting for deprecated items
- Start brief descriptions with 'Deprecated(YYYY-MM)' so that it is
  readily visible in the short method description. Consistent date
  format (YYYY-MM), placed immediately after the \deprecated tag.
2018-11-11 17:17:33 +01:00
990d00d40d ENH: additional boolToken token type
- not used by the ISstream parser, but suitable for other parsing
  methods where true/false concept should be distinguishable from
  integer values.

  Only constructed via the token::boolean() static method, not
  directly assignable.
  This avoids any potential ambiguities with label.
2018-10-12 09:09:36 +02:00
f9fe71815a STYLE: consistent use of '= delete' for removed constructors/assignments
- make the purpose more explicit, and reduces some work for the
  compiler as well.
2018-05-30 12:03:17 +02:00
dffc65d41d STYLE: make token null constructor constexpr, noexcept 2018-04-25 10:42:25 +02:00
a230e8d408 STYLE: Correcting typos 2018-03-28 17:14:16 +01:00
660f3e5492 ENH: cleanup autoPtr class (issue #639)
Improve alignment of its behaviour with std::unique_ptr

  - element_type typedef
  - release() method - identical to ptr() method
  - get() method to get the pointer without checking and without releasing it.
  - operator*() for dereferencing

Method name changes

  - renamed rawPtr() to get()
  - renamed rawRef() to ref(), removed unused const version.

Removed methods/operators

  - assignment from a raw pointer was deleted (was rarely used).
    Can be convenient, but uncontrolled and potentially unsafe.
    Do allow assignment from a literal nullptr though, since this
    can never leak (and also corresponds to the unique_ptr API).

Additional methods

  - clone() method: forwards to the clone() method of the underlying
    data object with argument forwarding.

  - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)

STYLE: avoid implicit conversion from autoPtr to object type in many places

- existing implementation has the following:

     operator const T&() const { return operator*(); }

  which means that the following code works:

       autoPtr<mapPolyMesh> map = ...;
       updateMesh(*map);    // OK: explicit dereferencing
       updateMesh(map());   // OK: explicit dereferencing
       updateMesh(map);     // OK: implicit dereferencing

  for clarity it may preferable to avoid the implicit dereferencing

- prefer operator* to operator() when deferenced a return value
  so it is clearer that a pointer is involve and not a function call
  etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
2018-02-26 12:00:00 +01:00
4f1e4aa59e ENH: add token type for stream flags (ASCII/BINARY) 2017-11-12 16:57:37 +01:00
166f62f19d STYLE: spelling, doxygen 2017-11-09 11:04:34 +01:00
c4de3e0a4d ENH: enhancements to behaviour of token
- improved memory alignment reduces overhead for Int32 compilation

- added move/swap semantics

- made the type() readonly in favour of setVariant() to allow change
  of variant within a particular storage representation.
  Eg, STRING -> VERBATIMSTRING.
2017-11-05 20:05:28 +01:00
37e863521a ENH: make token constructors explicit (issue #563)
- access tokenType enum values more consistently.
2017-08-10 11:53:37 +02:00
86ef9e86dc ENH: make treatment of stream allocators more uniform (issue #532)
- use allocator class to wrap the stream pointers instead of passing
  them into ISstream, OSstream and using a dynamic cast to delete
  then. This is especially important if we will have a bidirectional
  stream (can't delete twice!).

STYLE:

- file stream constructors with std::string (C++11)

- for rewind, explicit about in|out direction. This is not currently
  important, but avoids surprises with any future bidirectional access.

- combined string streams in StringStream.H header.
  Similar to <sstream> include that has both input and output string
  streams.
2017-07-17 15:14:38 +02:00
bc1f2fa97e STYLE: use auto and cfind to simplify selector usage (issue #512) 2017-07-03 10:36:03 +02:00
a4c81f5962 ENH: make streams name() methods virtual throughout (issue #479) 2017-07-04 17:17:09 +02:00
2af602c2f4 STYLE: for Istream/Ostream check() use FUNCTION_NAME in messages 2017-05-26 10:59:16 +02:00
bb67ccd37d ENH: Cleaned up hash table item found checks 2017-05-19 11:15:35 +01:00
c5630e5cb1 Corrected nullptr collateral damage
Resolves bug-report http://bugs.openfoam.org/view.php?id=2181
2016-08-08 15:38:53 +01:00
58f905ff70 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
a4f8f589de Added forward declaration of friend functions 2016-05-29 22:28:37 +01:00
dac76d680c tmp: encapsulate refCount to enable the option for tmp to use a specific version 2016-02-28 22:50:24 +00:00
c02bf70ea7 tmp: Improved reference count checks to provide better error diagnostics
in case of tmp misuse.

Simplified tmp reuse pattern in field algebra to use tmp copy and
assignment rather than the complex delayed call to 'ptr()'.

Removed support for unused non-const 'REF' storage of non-tmp objects due to C++
limitation in constructor overloading: if both tmp(T&) and tmp(const T&)
constructors are provided resolution is ambiguous.

The turbulence libraries have been upgraded and '-DCONST_TMP' option
specified in the 'options' file to switch to the new 'tmp' behavior.
2016-02-24 12:47:36 +00:00
f19f48132e Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
dc43311e62 src/OpenFOAM: Update ...IOErrorIn -> ...IOErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 21:13:04 +00:00
78d7482e5b SolverPerformance: Complete the integration of the templated SolverPerformance<Type>
Now solvers return solver performance information for all components
with backward compatibility provided by the "max" function which created
the scalar solverPerformance from the maximum component residuals from
the SolverPerformance<Type>.

The residuals functionObject has been upgraded to support
SolverPerformance<Type> so that now the initial residuals for all
(valid) components are tabulated, e.g. for the cavity tutorial case the
residuals for p, Ux and Uy are listed vs time.

Currently the residualControl option of pimpleControl and simpleControl
is supported in backward compatibility mode (only the maximum component
residual is considered) but in the future this will be upgraded to
support convergence control for the components individually.

This development started from patches provided by Bruno Santos, See
http://www.openfoam.org/mantisbt/view.php?id=1824
2015-11-10 08:50:11 +00:00
94401af010 Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
0ea062816e Correct section comment: there can only be one destructor 2015-02-12 21:57:29 +00:00
cb74377832 BUG: Ostream: streaming of unexpanded variables over processorstreams 2013-03-05 15:58:32 +00:00
a1ec2395e7 ENH: debug: register debug names 2012-12-18 17:01:55 +00:00
8e968f5647 STYLE: debug: move debug declaration into Foam namespace 2012-12-11 09:33:20 +00:00
af1f43183c STYLE: variables: have separate token type 2012-10-26 12:10:56 +01:00
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
9e02bcc070 Corrected copyright 2011-08-06 23:38:12 +01:00
61db7b5bad OpenFOAM library: Add better error messaging from compound token transfer 2011-08-06 23:35:28 +01:00
84bdcedb33 Changes to template specialization specification for the latest clang version. 2011-06-09 11:58:16 +01:00
d1fdcc2698 STYLE: minor code changes 2011-04-08 10:05:07 +01:00
79939b9e18 ENH: #codeStream: preserve across preprocessing
- new token: token::VERBATIMSTRING
- writing of this type in primitiveEntry
- disabling of all functionEntries in entry
2011-02-22 15:29:57 +00:00
6d0c6483eb ENH: ISstream: have #{ #} delimiters for verbatim strings 2011-02-18 18:07:02 +00:00