PCL
pcl::IsoCharTraits Class Reference

A template instantiation of GenericCharTraits for the char type. More...

#include <CharTraits.h>

+ Inheritance diagram for pcl::IsoCharTraits:

Public Types

using char_type = traits_base::char_type
 
using traits_base = GenericCharTraits< char >
 
- Public Types inherited from pcl::GenericCharTraits< char >
using char_type = char
 

Static Public Member Functions

static int Compare (const char_type *__restrict__ s1, size_type n1, const char_type *__restrict__ s2, size_type n2, bool caseSensitive=true, bool localeAware=true) noexcept
 
static int CompareCodePoints (const char_type *__restrict__ s1, size_type n1, const char_type *__restrict__ s2, size_type n2, bool caseSensitive=true) noexcept
 
static void Copy (char_type *__restrict__ dst, const char_type *__restrict__ src, size_type n) noexcept
 
static void CopyOverlapped (char_type *dst, const char_type *src, size_type n) noexcept
 
static void Fill (char_type *__restrict__ s, char_type c, size_type n) noexcept
 
static constexpr size_type Length (const char_type *__restrict__ s) noexcept
 
static void ToCaseFolded (char_type *s, size_type n) noexcept
 
static char_type ToCaseFolded (char_type c) noexcept
 
static void ToLowercase (char_type *s, size_type n) noexcept
 
static char_type ToLowercase (char_type c) noexcept
 
static void ToUppercase (char_type *s, size_type n) noexcept
 
static char_type ToUppercase (char_type c) noexcept
 
static bool WildMatch (const char_type *__restrict__ t, size_type nt, const char_type *__restrict__ p, size_type np, bool caseSensitive=true) noexcept
 
- Static Public Member Functions inherited from pcl::GenericCharTraits< char >
static constexpr char_type Blank () noexcept
 
static constexpr size_type BytesPerChar () noexcept
 
static constexpr char_type Colon () noexcept
 
static constexpr char_type Comma () noexcept
 
static int Compare (const char_type *__restrict__ s1, size_type n1, const char_type *__restrict__ s2, size_type n2, bool caseSensitive=true, bool localeAware=true) noexcept
 
static int CompareCodePoints (const char_type *__restrict__ s1, size_type n1, const char_type *__restrict__ s2, size_type n2, bool caseSensitive=true) noexcept
 
static void Copy (char_type *__restrict__ dst, const char_type *__restrict__ src, size_type n) noexcept
 
static void CopyOverlapped (char_type *dst, const char_type *src, size_type n) noexcept
 
static constexpr char_type CR () noexcept
 
static constexpr char_type DecimalSeparator () noexcept
 
static constexpr char_type DoubleQuote () noexcept
 
static constexpr char_type ExponentDelimiter () noexcept
 
static void Fill (char_type *__restrict__ s, char_type c, size_type n) noexcept
 
static constexpr char_type Hyphen () noexcept
 
static constexpr bool IsAlpha (char_type c) noexcept
 
static constexpr bool IsDecimalSeparator (char_type c) noexcept
 
static constexpr bool IsDigit (char_type c) noexcept
 
static constexpr bool IsExponentDelimiter (char_type c) noexcept
 
static constexpr bool IsHexDigit (char_type c) noexcept
 
static constexpr bool IsLowercaseAlpha (char_type c) noexcept
 
static constexpr bool IsNull (char_type c) noexcept
 
static constexpr bool IsSign (char_type c) noexcept
 
static constexpr bool IsSpace (char_type c) noexcept
 
static constexpr bool IsStartingSymbolDigit (char_type c) noexcept
 
static constexpr bool IsSymbolDigit (char_type c) noexcept
 
static constexpr bool IsTrimable (char_type c) noexcept
 
static constexpr bool IsUnderscore (char_type c) noexcept
 
static constexpr bool IsUppercaseAlpha (char_type c) noexcept
 
static constexpr bool IsWildcard (char_type c) noexcept
 
static size_type Length (const char_type *s) noexcept
 
static constexpr char_type LF () noexcept
 
static constexpr char_type MinusSign () noexcept
 
static constexpr char_type Null () noexcept
 
static constexpr char_type PlusSign () noexcept
 
static Ptr1 SearchTrimLeft (Ptr1 i, Ptr2 j) noexcept
 
static Ptr2 SearchTrimRight (Ptr1 i, Ptr2 j) noexcept
 
static constexpr char_type Semicolon () noexcept
 
static constexpr char_type SingleQuote () noexcept
 
static constexpr char_type Tab () noexcept
 
static char_type ToCaseFolded (char_type c) noexcept
 
static void ToLowercase (char_type *__restrict__ s, size_type n) noexcept
 
static constexpr char_type ToLowercase (char_type c) noexcept
 
static void ToUppercase (char_type *__restrict__ s, size_type n) noexcept
 
static constexpr char_type ToUppercase (char_type c) noexcept
 
static constexpr char_type Underscore () noexcept
 
static bool WildMatch (const char_type *__restrict__ t, size_type nt, const char_type *__restrict__ p, size_type np, bool caseSensitive=true) noexcept
 

Detailed Description

IsoCharTraits is the char traits class used by IsoString.

Definition at line 858 of file CharTraits.h.

Member Typedef Documentation

◆ char_type

Represents the character data type used by this traits class.

Definition at line 870 of file CharTraits.h.

◆ traits_base

Base class of this char traits class.

Definition at line 865 of file CharTraits.h.

Member Function Documentation

◆ Compare()

static int pcl::IsoCharTraits::Compare ( const char_type *__restrict__  s1,
size_type  n1,
const char_type *__restrict__  s2,
size_type  n2,
bool  caseSensitive = true,
bool  localeAware = true 
)
staticnoexcept

Lexicographical comparison between two 8-bit strings.

Parameters
s1First string.
n1Length of the first string in characters.
s2Second string.
n2Length of the second string in characters.
caseSensitiveWhen true, a case-sensitive comparison is performed; otherwise the comparison does not distinguish between lowercase and uppercase characters (as defined by the current locale). The default value of this parameter is true.
localeAwareWhen true, a locale-aware comparison is performed which takes into account the currently selected user locale (language and variants). When false, an invariant comparison is carried out by comparing Unicode code points (which may be faster). The default value is true.

Returns an integer code representing the comparison result:

  • 0 if s1 and s2 are equal
  • -1 if s1 is less than s2
  • +1 if s1 is greater than s2

On OS X and Windows platforms this function invokes system API routines to perform locale-aware string comparisons.

On X11 (FreeBSD and Linux platforms), when the localeAware parameter is true, the comparison uses the current locale as reported by calling the setlocale POSIX function:

setlocale( LC_COLLATE, 0 );

In PixInsight on X11 platforms, the default user collation and case comparison locales are used. A module can change them temporarily to a custom locale by calling:

setlocale( LC_COLLATE, "<custom-locale>" );
setlocale( LC_CTYPE, "<custom-locale>" );

and then, after the necessary work has been done with the custom locales, restore the default settings:

setlocale( LC_COLLATE, "" );
setlocale( LC_CTYPE, "" );

◆ CompareCodePoints()

static int pcl::IsoCharTraits::CompareCodePoints ( const char_type *__restrict__  s1,
size_type  n1,
const char_type *__restrict__  s2,
size_type  n2,
bool  caseSensitive = true 
)
inlinestaticnoexcept

Compares numeric character values between two 8-bit strings.

Parameters
s1First string.
n1Length of the first string in characters.
s2Second string.
n2Length of the second string in characters.
caseSensitiveWhen true, a case-sensitive comparison is performed; otherwise the comparison does not distinguish between lowercase and uppercase characters. The default value of this parameter is true.

Returns an integer code representing the comparison result:

  • 0 if s1 and s2 are equal
  • -1 if s1 is less than s2
  • +1 if s1 is greater than s2

Definition at line 948 of file CharTraits.h.

◆ Copy()

static void pcl::IsoCharTraits::Copy ( char_type *__restrict__  dst,
const char_type *__restrict__  src,
size_type  n 
)
inlinestaticnoexcept

Copies a contiguous sequence of characters to a specified location. The source and destination regions do not overlap.

Parameters
dstDestination location where characters will be copied.
srcInitial address of the sequence of source characters.
nNumber of characters to copy.

If the source and destination regions overlap, this routine will produce an unpredictable result. CopyOverlapped() should be used in these cases.

Definition at line 908 of file CharTraits.h.

◆ CopyOverlapped()

static void pcl::IsoCharTraits::CopyOverlapped ( char_type dst,
const char_type src,
size_type  n 
)
inlinestaticnoexcept

Copies a contiguous sequence of characters to a specified location. The source and destination regions may safely overlap.

Parameters
dstDestination location where characters will be copied.
srcInitial address of the sequence of source characters.
nNumber of characters to copy.

Definition at line 922 of file CharTraits.h.

◆ Fill()

static void pcl::IsoCharTraits::Fill ( char_type *__restrict__  s,
char_type  c,
size_type  n 
)
inlinestaticnoexcept

Fills a contiguous region of characters with a constant value.

Parameters
sInitial address of a character sequence.
cConstant value to fill with.
nNumber of characters to fill.

Definition at line 891 of file CharTraits.h.

◆ Length()

static constexpr size_type pcl::IsoCharTraits::Length ( const char_type *__restrict__  s)
inlinestaticconstexprnoexcept

Returns the length of a null-terminated 8-bit string in characters (not bytes).

The returned value is the length of the initial contiguous sequence of characters that are not equal to Null().

Definition at line 879 of file CharTraits.h.

Referenced by pcl::File::OutText().

◆ ToCaseFolded() [1/2]

static void pcl::IsoCharTraits::ToCaseFolded ( char_type s,
size_type  n 
)
inlinestaticnoexcept

Transforms a string to case folded.

Definition at line 1080 of file CharTraits.h.

◆ ToCaseFolded() [2/2]

static char_type pcl::IsoCharTraits::ToCaseFolded ( char_type  c)
inlinestaticnoexcept

Returns the case folded equivalent character for the specified ISO/IEC-8859-1 code point c.

Case folding elimitates case differences, which is useful for case-insensitive string comparisons.

For more information on case folding, see Section 3.13 Default Case Algorithms in The Unicode Standard.

Definition at line 1054 of file CharTraits.h.

Referenced by pcl::CharTraits::WildMatch().

◆ ToLowercase() [1/2]

static void pcl::IsoCharTraits::ToLowercase ( char_type s,
size_type  n 
)
inlinestaticnoexcept

Transforms a string to lowercase.

Definition at line 1090 of file CharTraits.h.

◆ ToLowercase() [2/2]

static char_type pcl::IsoCharTraits::ToLowercase ( char_type  c)
inlinestaticnoexcept

Returns the lowercase equivalent character for the specified ISO/IEC-8859-1 code point c.

Definition at line 1063 of file CharTraits.h.

◆ ToUppercase() [1/2]

static void pcl::IsoCharTraits::ToUppercase ( char_type s,
size_type  n 
)
inlinestaticnoexcept

Transforms a string to uppercase.

Definition at line 1100 of file CharTraits.h.

◆ ToUppercase() [2/2]

static char_type pcl::IsoCharTraits::ToUppercase ( char_type  c)
inlinestaticnoexcept

Returns the uppercase equivalent character for the specified ISO/IEC-8859-1 code point c.

Definition at line 1072 of file CharTraits.h.

◆ WildMatch()

static bool pcl::IsoCharTraits::WildMatch ( const char_type *__restrict__  t,
size_type  nt,
const char_type *__restrict__  p,
size_type  np,
bool  caseSensitive = true 
)
inlinestaticnoexcept

Wildcard string matching algorithm.

Parameters
tThe string to be matched.
ntLength of the string to be matched in characters.
pThe pattern string. May contain multiple instances of the wildcard characters '*' and '?'.
npLength of the pattern string in characters.
caseSensitiveWhen true, a case-sensitive comparison is performed; otherwise the comparison does not distinguish between lowercase and uppercase characters. The default value of this parameter is true.

Returns true iff the string t matches the specified pattern p. If one of the strings is empty, this function always returns false conventionally, even if the pattern is a single asterisk '*'.

Definition at line 1034 of file CharTraits.h.


The documentation for this class was generated from the following file: