RFC: A new helper class

Allan Sandfeld Jensen kde at carewolf.com
Mon Oct 4 14:36:30 BST 2004


On Monday 04 October 2004 14:42, Jarosław Staniek wrote:
> Hello,
> Many of us do not use C++ exceptions, while sometimes it's usable to use
> 3-state logic because boolean is not enough. The 3rd state means sometimes
> 'cancelled' or 'dontKnow'. Moreover, this logic is also havily used for
> relational databases. My proposal is a lightweight 'tristate' class as a
> companion to bool type:
>
> http://www.iidea.pl/~js/kexi/download/tristate.h
>
> As you can see, the class is 'inline' and there are convenient operators.
> I used the class in Kexi's code and thus decreased complexity pretty much
> and cleaned up the code and the API (removed many "bool &cancelled"
> parameters). Example real-life usage:
>
> http://www.iidea.pl/~js/kexi/download/kexidialogbase.cpp
>
> Within KDE CVS the class can be located as koffice/kexi/tristate.h.
> Currently, application developers are free to use the class by copying the
> file (later maybe that it will be moved to more official place?).

Maybe I am old-fashioned, but I prefer the traditional C-way of representing 
this:
int ret;
ret>0 -> true
ret==0 -> false
ret<0 -> error/exception

It provides more than one abnormal termination type, which you often need, and 
this scheme can also handle any function with positive integer return-types.

`Allan




More information about the kde-core-devel mailing list