2000-03-09 20:15:17 -05:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
%% Name: longlong.tex
|
|
|
|
%% Purpose: wxLongLong documentation
|
|
|
|
%% Author: Vadim Zeitlin
|
|
|
|
%% Modified by:
|
|
|
|
%% Created: 07.03.00
|
|
|
|
%% RCS-ID: $Id$
|
|
|
|
%% Copyright: (c) Vadim Zeitlin
|
2005-02-22 10:09:56 -05:00
|
|
|
%% License: wxWindows license
|
2000-03-09 20:15:17 -05:00
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
|
1999-05-10 14:16:31 -04:00
|
|
|
\section{\class{wxLongLong}}\label{wxlonglong}
|
|
|
|
|
|
|
|
This class represents a signed 64 bit long number. It is implemented using the
|
|
|
|
native 64 bit type where available (machines with 64 bit longs or compilers
|
|
|
|
which have (an analog of) {\it long long} type) and uses the emulation code in
|
|
|
|
the other cases which ensures that it is the most efficient solution for
|
|
|
|
working with 64 bit integers independently of the architecture.
|
|
|
|
|
|
|
|
wxLongLong defines all usual arithmetic operations such as addition,
|
2002-06-07 16:15:28 -04:00
|
|
|
subtraction, bitwise shifts and logical operations as well as multiplication
|
1999-05-10 14:16:31 -04:00
|
|
|
and division (not yet for the machines without native {\it long long}). It
|
|
|
|
also has operators for implicit construction from and conversion to the native
|
|
|
|
{\it long long} type if it exists and {\it long}.
|
|
|
|
|
|
|
|
You would usually use this type in exactly the same manner as any other
|
2001-11-30 22:43:08 -05:00
|
|
|
(built-in) arithmetic type. Note that wxLongLong is a signed type, if you
|
2002-12-04 09:11:26 -05:00
|
|
|
want unsigned values use wxULongLong which has exactly the same API as
|
|
|
|
wxLongLong except when explicitly mentioned otherwise.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
|
|
|
If a native (i.e. supported directly by the compiler) 64 bit integer type was
|
2002-12-04 09:11:26 -05:00
|
|
|
found to exist, {\it wxLongLong\_t} macro will be defined to correspond to it.
|
|
|
|
Also, in this case only, two additional macros will be defined:
|
|
|
|
\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec} for printing 64 bit integers
|
|
|
|
using the standard {\tt printf()} function (but see also
|
|
|
|
\helpref{ToString()}{wxlonglongtostring} for a more portable solution) and
|
|
|
|
\helpref{wxLL}{wxll} for defining 64 bit integer compile-time constants.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
|
|
|
\wxheading{Derived from}
|
|
|
|
|
|
|
|
No base class
|
|
|
|
|
|
|
|
\wxheading{Include files}
|
|
|
|
|
|
|
|
<wx/longlong.h>
|
|
|
|
|
|
|
|
\latexignore{\rtfignore{\wxheading{Members}}}
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongdef}
|
|
|
|
|
|
|
|
\func{}{wxLongLong}{\void}
|
|
|
|
|
|
|
|
Default constructor initializes the object to 0.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglongll}
|
|
|
|
|
|
|
|
\func{}{wxLongLong}{\param{wxLongLong\_t }{ll}}
|
|
|
|
|
|
|
|
Constructor from native long long (only for compilers supporting it).
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::wxLongLong}\label{wxlonglongwxlonglong}
|
|
|
|
|
|
|
|
\func{}{wxLongLong}{\param{long }{hi}, \param{unsigned long }{lo}}
|
|
|
|
|
|
|
|
Constructor from 2 longs: the high and low part are combined into one
|
|
|
|
wxLongLong.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassign}
|
|
|
|
|
|
|
|
\func{wxLongLong\& operator}{operator=}{\param{wxLongLong\_t }{ll}}
|
|
|
|
|
|
|
|
Assignment operator from native long long (only for compilers supporting it).
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2006-02-11 11:51:34 -05:00
|
|
|
\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignull}
|
|
|
|
|
|
|
|
\func{wxLongLong\& operator}{operator=}{\param{wxULongLong\_t }{ll}}
|
|
|
|
|
|
|
|
Assignment operator from native unsigned long long (only for compilers
|
|
|
|
supporting it).
|
|
|
|
|
2006-05-28 06:53:00 -04:00
|
|
|
\newsince{2.7.0}
|
|
|
|
|
2006-02-11 11:51:34 -05:00
|
|
|
\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignlong}
|
|
|
|
|
|
|
|
\func{wxLongLong\& operator}{operator=}{\param{long }{l}}
|
|
|
|
|
|
|
|
Assignment operator from long.
|
|
|
|
|
2006-05-28 06:53:00 -04:00
|
|
|
\newsince{2.7.0}
|
|
|
|
|
2006-02-11 11:51:34 -05:00
|
|
|
\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignulong}
|
|
|
|
|
|
|
|
\func{wxLongLong\& operator}{operator=}{\param{unsigned long }{l}}
|
|
|
|
|
|
|
|
Assignment operator from unsigned long.
|
|
|
|
|
2006-05-28 06:53:00 -04:00
|
|
|
\newsince{2.7.0}
|
|
|
|
|
2006-02-11 11:51:34 -05:00
|
|
|
\membersection{wxLongLong::operator=}\label{wxlonglongoperatorassignulonglong}
|
|
|
|
|
|
|
|
\func{wxLongLong\& operator}{operator=}{\param{const wxULongLong \& }{ll}}
|
|
|
|
|
|
|
|
Assignment operator from unsigned long long. The sign bit will be copied too.
|
|
|
|
|
2006-05-28 06:53:00 -04:00
|
|
|
\newsince{2.7.0}
|
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::Abs}\label{wxlonglongabs}
|
|
|
|
|
|
|
|
\constfunc{wxLongLong}{Abs}{\void}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{Abs}{\void}
|
|
|
|
|
|
|
|
Returns an absolute value of wxLongLong - either making a copy (const version)
|
2001-11-30 22:43:08 -05:00
|
|
|
or modifying it in place (the second one). Not in wxULongLong.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::Assign}\label{wxlonglongassign}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{Assign}{\param{double }{d}}
|
|
|
|
|
|
|
|
This allows to convert a double value to wxLongLong type. Such conversion is
|
|
|
|
not always possible in which case the result will be silently truncated in a
|
2001-11-30 22:43:08 -05:00
|
|
|
platform-dependent way. Not in wxULongLong.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::GetHi}\label{wxlonglonggethi}
|
|
|
|
|
|
|
|
\constfunc{long}{GetHi}{\void}
|
|
|
|
|
2002-06-07 16:15:28 -04:00
|
|
|
Returns the high 32 bits of 64 bit integer.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::GetLo}\label{wxlonglonggetlo}
|
|
|
|
|
|
|
|
\constfunc{unsigned long}{GetLo}{\void}
|
|
|
|
|
2002-06-07 16:15:28 -04:00
|
|
|
Returns the low 32 bits of 64 bit integer.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::GetValue}\label{wxlonglonggetvalue}
|
|
|
|
|
|
|
|
\constfunc{wxLongLong\_t}{GetValue}{\void}
|
|
|
|
|
|
|
|
Convert to native long long (only for compilers supporting it)
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
|
|
|
\membersection{wxLongLong::ToDouble}\label{wxlonglonggetdouble}
|
|
|
|
|
|
|
|
\constfunc{double}{ToDouble}{\void}
|
|
|
|
|
|
|
|
Returns the value as \texttt{double}.
|
|
|
|
|
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::ToLong}\label{wxlonglongtolong}
|
|
|
|
|
|
|
|
\constfunc{long}{ToLong}{\void}
|
|
|
|
|
|
|
|
Truncate wxLongLong to long. If the conversion loses data (i.e. the wxLongLong
|
|
|
|
value is outside the range of built-in long type), an assert will be triggered
|
|
|
|
in debug mode.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2001-08-25 12:42:11 -04:00
|
|
|
\membersection{wxLongLong::ToString}\label{wxlonglongtostring}
|
|
|
|
|
|
|
|
\constfunc{wxString}{ToString}{\void}
|
|
|
|
|
|
|
|
Returns the string representation of a wxLongLong.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$+$}\label{wxlonglongoperatorplus}
|
|
|
|
|
|
|
|
\constfunc{wxLongLong}{operator$+$}{\param{const wxLongLong\& }{ll}}
|
|
|
|
|
|
|
|
Adds 2 wxLongLongs together and returns the result.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$+=$}\label{wxlonglongoperatorplusassign}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator+}{\param{const wxLongLong\& }{ll}}
|
|
|
|
|
|
|
|
Add another wxLongLong to this one.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$++$}\label{wxlonglongoperatorinc}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator$++$}{\void}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator$++$}{\param{int}{}}
|
|
|
|
|
|
|
|
Pre/post increment operator.
|
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorunaryminus}
|
|
|
|
|
|
|
|
\constfunc{wxLongLong}{operator$-$}{\void}
|
|
|
|
|
2001-11-30 22:43:08 -05:00
|
|
|
Returns the value of this wxLongLong with opposite sign. Not in wxULongLong.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$-$}\label{wxlonglongoperatorminus}
|
|
|
|
|
|
|
|
\constfunc{wxLongLong}{operator$-$}{\param{const wxLongLong\& }{ll}}
|
|
|
|
|
2004-10-22 15:15:35 -04:00
|
|
|
Subtracts 2 wxLongLongs and returns the result.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$-=$}\label{wxlonglongoperatorminusassign}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator-}{\param{const wxLongLong\& }{ll}}
|
|
|
|
|
2004-10-22 15:15:35 -04:00
|
|
|
Subtracts another wxLongLong from this one.
|
2000-03-09 20:15:17 -05:00
|
|
|
|
2005-08-27 20:03:30 -04:00
|
|
|
|
2000-03-09 20:15:17 -05:00
|
|
|
\membersection{wxLongLong::operator$--$}\label{wxlonglongoperatordec}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator$--$}{\void}
|
|
|
|
|
|
|
|
\func{wxLongLong\&}{operator$--$}{\param{int}{}}
|
|
|
|
|
|
|
|
Pre/post decrement operator.
|
1999-08-05 18:05:15 -04:00
|
|
|
|
2000-03-10 11:06:33 -05:00
|
|
|
% TODO document all other arithmetics operations: shifts, multiplication,
|
2000-03-09 20:15:17 -05:00
|
|
|
% division, bitwise, comparison
|
2000-03-10 11:06:33 -05:00
|
|
|
|