www.digitalmars.com         C & C++   DMDScript  

c++.announce - Open-RJ 1.3.3 released


28th June 2005 : Open-RJ 1.3.2 => 1.3.3

There are six changes:

- fixed an assert in orjapi.c, which erroneously fired when a record 
marker had
  trailing whitespace.

- Compatible with Mac OS-X

- added c_str_ptr_null and c_str_data string access shims, for 
  ::openrj::cpp and ::openrj::stl constructs.

- openrj::cpp::record now uses Static Covariance (aka 
  Covariance) for subscript operator. This means that if it's an 
integer then
  a Field is returned, and if it's a string then the value (as a 
string) is

- added reverse iterator support in the record and database classes 
of the STL

- general tidying of sample programs

Note: This release depends on STLSoft 1.8.4 beta 1, or later.

26th May 2005 : Open-RJ 1.3.1 => 1.3.2

There are four changes.

The first two are aimed at helping users get to grips with the 
library, as

- the first change is the addition of three more test programs - 
  Cpp_minimal and STL_minimal - that demonstrate minimal and easy 
use of the C++
  and STL mappings.

- the second change is a "Getting Started" page within the 

(Thanks to Rajiv Bhagwat for showing where things were not as easy 
as they should
have been.),

The other two changes are code changes in the C++ and STL mappings:

- The Record/record classes, in the Open-RJ/C++ and Open-RJ/STL 
  respectively, now return const Field/field instances, to prevent 
misuse in the
  following form:

  record[0] = record[1]; // Will now not compiler

- The Open-RJ/C++ Record class has enhanced subscript operators to 
  ambiguous resolution when used with literal integers.

23rd May 2005 : Open-RJ 1.2.1 => 1.3.1

The main change is that record comments are now made available in 
the API, in
the form of the 'comment' member of the ORJRecordA structure, and 
ORJ_Record_GetCommentA() function.

There is also a new auto-link header, which causes compilers that 
support such
behaviour to insert comment records that direct their linker to link 
to the
appropriate Open-RJ library, e.g. openrj.vc71.mt.debug.lib, without 
explicit specification in the linker command. Some developers prefer 
this kind
of automatic behaviour, and now have this facility if they so wish 
just by
including openrj_implicit_link.h

Other changes are as follows:

 - c_str_ptr() shims are added for ORJStringA. (See chapter 19 of 
Imperfect C++
   (http://imperfectcplusplus.com/) for an explanation of the Shims 
 - c_str_data() and c_str_len() shims are provided in addition to 
   These are of general use, but are particularly useful with 
   basic_string_view template

Changes to the mappings are as follows:

 C++ mapping:
  - the headers are separated out, one per class. They are all fully 
    i.e. including openrj/cpp/filedatabase.hpp includes 
    and openrj/cpp/field.hpp
  - addition of (in-)equality operators (operator == and operator 
!=) for Field
  - addition of String typedef within openrj::cpp namespace, which 
is actually
    a typedef for stlsoft::basic_string_view<char> (for providing 
views onto
    the string information within database fields).
  - addition of Record::GetComment(), Record::HasField(char const 
    Record::HasField(char const *name, char const *value),
    Record::HasFieldWithValue(char const *value) methods
  - Record::operator []() overloads taking string objects now return 
    rather than ORJString

 STL mapping:
  - addition of record::comment() method

 Python mapping:
  - addition of comment property to record type

 Ruby mapping:
  - addition of comment property to record type


Diffs for previous releases not available at this time.

Jun 27 2005