// Purpose: interface of wxLongLong
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
wxLongLong defines all usual arithmetic operations such as addition,
subtraction, bitwise shifts and logical operations as well as multiplication
- and division (not yet for the machines without native @e long long). It
- also has operators for implicit construction from and conversion to the native
+ and division (not yet for the machines without native @e long long).
+ It also has operators for implicit construction from and conversion to the native
@e long long type if it exists and @e long.
You would usually use this type in exactly the same manner as any other
If a native (i.e. supported directly by the compiler) 64 bit integer type was
found to exist, @e wxLongLong_t macro will be defined to correspond to it.
Also, in this case only, two additional macros will be defined:
- wxLongLongFmtSpec() for printing 64 bit integers
- using the standard @c printf() function (but see also
- wxLongLong::ToString for a more portable solution) and
- wxLL() for defining 64 bit integer compile-time constants.
+ - wxLongLongFmtSpec() for printing 64 bit integers using the standard @c printf()
+ function (but see also wxLongLong::ToString for a more portable solution);
+ - wxLL() for defining 64 bit integer compile-time constants.
@library{wxbase}
@category{data}
class wxLongLong
{
public:
+ /**
+ Default constructor initializes the object to 0.
+ */
+ wxLongLong();
+
+ /**
+ Constructor from native long long (only for compilers supporting it).
+ */
+ wxLongLong(wxLongLong_t ll);
+
/**
Constructor from 2 longs: the high and low part are combined into one
wxLongLong.
//@{
/**
Returns an absolute value of wxLongLong - either making a copy (const version)
- or modifying it in place (the second one). Not in wxULongLong.
+ or modifying it in place (the second one). Not in wxULongLong.
*/
- wxLongLong Abs();
- const wxLongLong& Abs();
+ wxLongLong Abs() const;
+ wxLongLong& Abs();
//@}
/**
- 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
- platform-dependent way. Not in wxULongLong.
+ 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 platform-dependent way. Not in wxULongLong.
*/
wxLongLong Assign(double d);
unsigned long GetLo() const;
/**
- Convert to native long long (only for compilers supporting it)
+ Convert to native long long (only for compilers supporting it).
*/
wxLongLong_t GetValue() const;
*/
wxString ToString() const;
+
/**
Adds 2 wxLongLongs together and returns the result.
*/
wxLongLong operator+(const wxLongLong& ll) const;
- //@{
- /**
- Pre/post increment operator.
- */
- wxLongLong operator++();
- wxLongLong operator++(int );
- //@}
-
/**
Add another wxLongLong to this one.
*/
- wxLongLong operator+(const wxLongLong& ll);
+ wxLongLong& operator+(const wxLongLong& ll);
+
/**
Subtracts 2 wxLongLongs and returns the result.
*/
wxLongLong operator-(const wxLongLong& ll) const;
+ /**
+ Subtracts another wxLongLong from this one.
+ */
+ wxLongLong& operator-(const wxLongLong& ll);
+
+
+ //@{
+ /**
+ Pre/post increment operator.
+ */
+ wxLongLong operator++();
+ wxLongLong operator++(int);
+ //@}
+
//@{
/**
Pre/post decrement operator.
*/
wxLongLong operator--();
- wxLongLong operator--(int );
+ wxLongLong operator--(int);
//@}
/**
- Subtracts another wxLongLong from this one.
+ Returns the value of this wxLongLong with opposite sign. Not in wxULongLong.
*/
- wxLongLong operator-(const wxLongLong& ll);
+ wxLongLong operator-() const;
/**
Assignment operator from unsigned long long. The sign bit will be copied too.
@since 2.7.0
*/
- wxLongLong& operator operator=(const wxULongLong& ll);
+ wxLongLong& operator=(const wxULongLong& ll);
+
+ /**
+ Assignment operator from native long long (only for compilers supporting it).
+ */
+ wxLongLong& operator=(wxLongLong_t ll);
+
+ /**
+ Assignment operator from native unsigned long long (only for compilers supporting it).
+
+ @since 2.7.0
+ */
+ wxLongLong& operator=(wxULongLong_t ll);
+
+ /**
+ Assignment operator from long.
+
+ @since 2.7.0
+ */
+ wxLongLong& operator=(long l);
+
+ /**
+ Assignment operator from unsigned long.
+
+ @since 2.7.0
+ */
+ wxLongLong& operator=(unsigned long l);
+
};
+/**
+ @class wxULongLong
+
+ This class represents an unsigned 64 bit long number.
+
+ Since wxULongLong has exactly the same API as wxLongLong, please refer
+ to wxLongLong documentation (this page exists only as redirection).
+
+ @library{wxbase}
+ @category{data}
+*/
+class wxULongLong
+{
+};
+
// ============================================================================
// Global functions/macros
// ============================================================================
-/** @ingroup group_funcmacro_misc */
+/** @addtogroup group_funcmacro_misc */
//@{
/**