PIP 5.5.3
Platform-Independent Primitives
Классы | Функции
Файл pistring.h

Регулярное выражение Подробнее...

#include "pibytearray.h"
#include "piconstchars.h"

Классы

class  PIString
 Класс строки. Подробнее...
 

Функции

template<typename P >
PIBinaryStream< P > & operator<< (PIBinaryStream< P > &s, const PIString &v)
 Оператор сохранения.
 
template<typename P >
PIBinaryStream< P > & operator>> (PIBinaryStream< P > &s, PIString &v)
 Оператор извлечения.
 
PIString operator+ (const PIString &str, const PIString &f)
 Возвращает соединение строк.
 
PIString operator+ (const PIString &f, const char *str)
 Возвращает соединение строк.
 
PIString operator+ (const char *str, const PIString &f)
 Возвращает соединение строк.
 
PIString operator+ (const char c, const PIString &f)
 Возвращает соединение строк.
 
PIString operator+ (const PIString &f, const char c)
 Возвращает соединение строк.
 
int versionCompare (const PIString &v0, const PIString &v1, int components=6)
 Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1. Подробнее...
 
PIString versionNormalize (const PIString &v)
 Преобразует строку с версией в произвольной форме к классическому виду. Подробнее...
 
template<typename T >
PIString piStringify (const T &v)
 Возвращает строковое представление "v", используя PICout operator<<(T)
 

Подробное описание

Регулярное выражение

Класс строки

Функции

◆ versionCompare()

int versionCompare ( const PIString v0,
const PIString v1,
int  components = 6 
)

Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1.

Этот метод разбирает версии на числовые части и метку. Затем сравнивает не более чем "components" частей. Если различий нет, то сравниваются метки. Каждой метке соответствует своё значение так, что "prealpha" < "alpha" < "prebeta" < "beta" < "rc[N]" < "" < "r[N]". Пример:

piCout << versionCompare("1.0.0_rc2-999", "1.0.1_rc2-999"); // -1, <
piCout << versionCompare("1.0.0", "0.9.2"); // 1, >
piCout << versionCompare("1.0.0_r1", "1.0.0"); // 1, >
piCout << versionCompare("1.0.0_r1", "1.0.0", 3); // 0, =
piCout << versionCompare("1.0.0_r2", "1.0.0", 3); // 0, =
piCout << versionCompare(".2-alpha", "0.2_alpha"); // 0, =
piCout << versionCompare("1_prebeta", "1.0_alpha"); // 1, >
int versionCompare(const PIString &v0, const PIString &v1, int components)
Сравнивает две строки с версиями в произвольной форме и возвращает 0, -1 или 1.
Definition: pistring.cpp:1982
#define piCout
Макрос для условного (piDebug) вывода в PICout(StdOut)
Definition: picout.h:35
Возвращает
  • 0 - равны
  • 1 - v0 > v1
  • -1 - v0 < v1

◆ versionNormalize()

PIString versionNormalize ( const PIString v)

Преобразует строку с версией в произвольной форме к классическому виду.

Разбирает версию по описанию versionCompare() и возвращает классическое представление версии и метки: major.minor.revision[-build][_label]. Пример:

piCout << versionNormalize(""); // 0.0.0
piCout << versionNormalize("1"); // 1.0.0
piCout << versionNormalize("1.2"); // 1.2.0
piCout << versionNormalize("1.2.3"); // 1.2.3
piCout << versionNormalize("1.2+rc1.99"); // 1.2.99_rc1
piCout << versionNormalize("1.2-alpha"); // 1.2.0_alpha
piCout << versionNormalize("1..4_rc2-999"); // 1.0.4-999_rc2
PIString versionNormalize(const PIString &v)
Преобразует строку с версией в произвольной форме к классическому виду.
Definition: pistring.cpp:2030