Home
ObjexxFCL 3.0
 

Release Notes


ObjexxFCL 3.0.0
  • FArrays renamed for clarity (breaking change but could be typedef'd away)
  • 6-D FArrays added
  • CPArray renamed CArrayP (breaking change but could be typedef'd away)
  • Namespace scope friend function declarations added to avoid dependence on friend injection or ADL lookup mechanisms
  • Minor source reorganization and tweaks

ObjexxFCL 2.7.0
  • Optional runtime proxy const-correctness checks
  • Rank 4 and 5 KeyFArrays added
  • New date function
  • Minor source reorganization and tweaks
  • Improved development and build systems

ObjexxFCL 2.6.3
  • Merged formatted i/o system into format.hh/.cc
  • Move internal namespace files into main source directory
  • Put bit functions in Fmath into bit namespace to avoid collisions with new C++0x functors
  • Minor additions and tweaks to Fstring and string_functions
  • Work-around for GCC 4.3 friend lookup bug
  • Portable build and unit testing drivers
  • Minor source reorganization and tweaks

ObjexxFCL 2.6.2
  • CArrayP added: CArray with proxy capability
  • Generator operators added to CArray
  • Minor source reorganization and tweaks

ObjexxFCL 2.6.1
  • Faster FArray redimensioning
  • New fast swap functions for IndexRange and Dimension classes
  • Minor source reorganization and tweaks

ObjexxFCL 2.6.0
  • Cstring added
  • char.functions renamed (was char_functions)
  • string.functions renamed (was string_functions) and extended
  • Fstring functions extended and made consistent with string.functions
  • trim_ws and trimmed_ws in Fstring and string.functions changed to remove only trailing whitespace: use the strip_whitespace and stripped_whitespace functions for removing whitespace from either or both string tails
  • array.iterator added
  • Minor source reorganization and tweaks

ObjexxFCL 2.5.3
  • KeyFArrays added
  • Forward declaration headers added and included in class declarations
  • Fmath: fix for 4-argument template min/max function to return by reference
  • Additional assertions added
  • Minor source tweaks

ObjexxFCL 2.5.2
  • FArray size reporting support added via OBJEXXFCL_FARRAY_SIZE_REPORT macro
  • F formatting in formatted.o changed to show more precision in some cases
  • Container typedefs for Container_size added

ObjexxFCL 2.5.1
  • IBM C++ compatibility work-arounds
  • CamelCase style typedef names added
  • Minor source reorganization and file renaming

ObjexxFCL 2.5.0
  • CArray added: memory-managed C-style array wrapper
  • ChunkVector: member functions added and stream output moved to ChunkVector_io.hh
  • ubyte added: unsigned byte
  • Headers renamed to .hh extension
  • Class forward declarations and typedefs put in .fwd.hh files
  • Code format updated and doxygen tags added

ObjexxFCL 2.4.1
  • FArray:
    • Assignment of differently dimensioned array supported to facilitate storing STL containers of FArrays
    • Cross product functions added for FArray1D
    • New FArray2D functions:
      • identity: Named identity matrix constructor
      • to_identity: Converts to identity matrix
      • diag:  Named diagonal matrix constructor
      • to_diag:  Converts to a diagonal matrix
      • operator*= and right_multiply_by:  Right-multiply by an FArray
      • transposed:  Transposed copy of the array

ObjexxFCL 2.4.0
  • FArray:
    • Data-preserving redimension functions added for real FArrays
    • swap functions added for real FArrays
    • Initializer set and clear functions added for real FArrays
    • Copy constructor template variants made explicit to prevent unintended copying
    • Generators added for real FArrays: A + B, A - B, A + 1, -A, etc.
    • STL-like typdefs added: reference, pointer, etc.
  • ChunkVector reimplemented for performance and dynamic growth:
    • Implemented as std::vector< Chunk >
    • Chunk is now an efficient growable array with controllable capacity
    • Constructor that doesn't initialize built-in C++ value types is available for performance
    • std::vector interoperation
    • push_back, pop_back, resize, shrink, and swap operations support efficient dynamic growth
    • STL-like typdefs added: reference, pointer, etc.
    • Exponent argument must be specified as an unsigned value or ChunkExponent( x ) to disambiguate some ChunkVector function calls
  • Dimension expression functions added: min, max, square, cube, and pow

ObjexxFCL 2.3.4
  • Refined/extended string_of and Fstring_of functions
  • Added FArray assign functions that redimension if necessary and assign another array's values
  • Microsoft® Visual C++ 7.1 compatibility added

ObjexxFCL 2.3.3
  • Windows and Linux 64-bit platform compatibility and large array support
  • Formatted output single-space support for std::complex added

ObjexxFCL 2.3.2
  • ChunkVector class template for very large vector support in a possibly memory fragmented application space added
  • Real FArray copy + IndexRange constructors added
  • rvalue_cast template function added

ObjexxFCL 2.3.1
  • Eliminated convenience header inclusions for finer-grained inclusion control and faster builds
  • Added FArrayN.all.h convenience wrapper headers that include all headers for a FArrays of rank N
  • Dimension.h insulated from DimensionExpression hierarchy headers for faster builds: DimensionExpressions.h must now be included by application code that creates Dimension expressions
  • Moved ObserverMulti std::set into SetWrapper class to allow forward declarations and faster builds
  • Minor refinements

ObjexxFCL 2.3.0
  • Automatic dynamic array sizing via Dimension objects
  • Proxy arrays that track their source arrays through (re)sizing
  • Argument/proxy array attach/detach and default construction
  • Array size overflow detection in debug builds
  • Optional default array initialization
  • Assumed-size array parameter changed from '*' to star to avoid char--int ambiguity
  • Formatted input slice function renamed to bite to avoid ambiguity with std::slice
  • Numeric conversion functions to/from std::string and Fstring
  • GCC 3.3 and 3.4 support on Linux, Mac OS X, Win32, ...
  • Intel C++ 8.0 and 8.1 support on Linux & Win32

ObjexxFCL 2.2.4
  • Migrate FArray assignment operators to concrete classes to avoid ambiguity/visibility issues

ObjexxFCL 2.2.3
  • GCC 3.4 support
  • ObjexxFCL_Platform.h removed
  • FArray_Section renamed FArraySection
  • Minor refinements

ObjexxFCL 2.2.2
  • Fixed resizing operation order bug introduced in 2.2.0
  • Minor refinements

ObjexxFCL 2.2.1
  • equal_dimensions FArray functions added
  • Minor refinements

ObjexxFCL 2.2.0
  • Arrays of up to five dimensions
  • Faster subscript-based and linear array accessors
  • "Argument" arrays can be passed any arrays or array elements
  • Two array element passing modes
  • Assumed-size array arguments
  • Fast linear array indexing
  • Array and string constructor initializer function support
  • Smart traits-based array stream formatted output
  • Additional Fortran 77 and 95 compatible intrinsic functions
  • Stream-based Fortran-like formatted i/o
  • Project-specific namespace control and typedef naming

See the Users and Developers guides for complete documentation.