C++ Portable Types Library (PTypes) Version 1.7


Top: Introduction


Basic features

PTypes features:


Naming and writing style

PTypes is yet another 'custom' class library among tens and hundreds of others. Using custom nonstandard libraries is not encouraged in general. However, all libraries, including the standard ones, do not descend from Heavens, they all are made by human programmers. Therefore, every library has its own advantages and disadvantages (and bugs), application domain, as well as a naming style. We designed this library in the hope that PTypes with its conciseness and intuitiveness could find its own 'target audience'.

First, some of the fundamental classes in the library (string, variant, character set and lists) declare their manipulation functions outside the class, i.e. as friend functions, to create an illusion of working with built-in data types.

Second, PTypes uses old-fashioned all-lowercase naming style. This style can peacefully coexist with any other writing style in one program, while others do not appear to be so 'friendly'.

These features, along with a naming style (a string type is called string, thread is thread, etc) significantly improve readability (hence reliability) of sources that use the library. Take a look at these 4 examples and compare them:

// traditional all-lowercase style, PTypes uses this
int add(objlist& list, unknown* obj);

// modern C++ style
int ObjList::addObject(Unknown* object);

// Borland style
int TObjectList::AddObject(TObject* Object);

// Microsoft/Hungarian
BOOL CPTypesObjectList::AddObject(
    CObject* Object, DWORD dwFlags,
    LPDWORD lpdwResult, LPVOID lpReserved,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes);


Versions and availability

Version 1.7 of PTypes is the seventh public release. The third number in the version indicates insignificant improvements or bug fixes. You might want to take a look at the Changes page if you are familiar with one of the previous versions.

The latest source code and both on-line and out-of-line documentation can be found at one of the following locations:

http://www.melikyan.com/ptypes/
http://ptypes.sourceforge.net/

You can receive announcements about new releases through one of the following services:

Subscribe to the project at Freshmeat.Net
Monitor the project at SourceForge.Net

The development version of PTypes is available at SourceForge.Net's CVS server. If you are willing to join the development of PTypes, please become a SourceForge.net user and then contact me to get full access to the CVS repository.


Bugs and known problems

The list of problems encountered in the latest version along with their solutions, if available, can be found at PTypes project management page (at SourceForge.net):

PTypes project management page


Contributors

We would like to thank:

Pierre-Frederic Caillaud <peufeu at free.fr> - for valuable suggestions on optimizing the dynamic string routines.
Ralph Siemsen <ralphs at netwinder.org> - for helping with the memory corruption problem on Linux.
An anonymous contributor (through sf.net) - for the datetime bug report.
Marco Geri <m.geri at list.it> - for the tv_usec-related bug report.


Contacts

PTypes is open and free, which also means it is open to your comments and suggestions. Please, submit bug reports and feature requests through PTypes project management page at sf.net. There is a public discussion forum for general questions.

The author would be grateful if you let him know that you use the library in your project. The author's email address is:

Hovik Melikyan <hovik@melikyan.com>

See also: Compiling and Porting, Changes


PTypes home