Оглавление

Строка (reference counted)

Путь: /sdk/add_on/scriptstring/

Это дополнение регистрирует std::string (с подсчетом ссылок). Это значит что приложение может принимать\получать строку по ссылке.

Регистрируется с помощью RegisterScriptString(asIScriptEngine*).

Утилиты регистрируеются с помощью RegisterScriptStringUtils(asIScriptEngine*).

Еще:
Строка (STL)

Public C++ interface

class CScriptString
{
public:
  // Конструктор
  CScriptString();
  CScriptString(const CScriptString &other);
  CScriptString(const char *s);
  CScriptString(const std::string &s);

  // Управление счетчиком ссылок
  void AddRef();
  void Release();

  // Присвоение
  CScriptString &operator=(const CScriptString &other);
  
  // Конкатеция
  CScriptString &operator+=(const CScriptString &other);
  friend CScriptString *operator+(const CScriptString &a, const CScriptString &b);
  
  // Буфер
  std::string buffer;
};

Public script interface

class string
{
    string();
    string(const string &in other);
    uint length() const;
    string &opAssign(const string &in other);
    string &opAddAssign(const string &in other);
    string @opAdd(const string &in right) const;
    bool opEquals(const string &in right) const;
    int  opCmp(const string &in right) const;
    string &opAssign(double val);
    string &opAddAssign(double val);
    string @opAdd(double val) const;
    string @opAdd_r(double val) const;
    string &opAssign(float val);
    string &opAddAssign(float val);
    string @opAdd(float val) const;
    string @opAdd_r(float val) const;
    string &opAssign(int val);
    string &opAddAssign(int val);
    string @opAdd(int val) const;
    string @opAdd_r(int val) const;
    string &opAssign(uint val);
    string &opAddAssign(uint val);
    string @opAdd(uint val) const;
    string @opAdd_r(uint val) const;
}

string @ substring(const string &in str, int start, int length);
int findFirst(const string &in str, const string &in sub);
int findFirst(const string &in str, const string &in sub, int startAt)
int findLast(const string &in str, const string &in sub);
int findLast(const string &in str, const string &in sub, int startAt);
int findFirstOf(const string &in str, const string &in set);
int findFirstOf(const string &in str, const string &in set, int startAt);
int findFirstNotOf(const string &in str, const string &in set);
int findFirstNotOf(const string &in str, const string &in set, int startAt);
int findLastOf(const string &in str, const string &in set);
int findLastOf(const string &in str, const string &in set, int startAt);
int findLastNotOf(const string &in str, const string &in set);
int findLastNotOf(const string &in str, const string &in set, int startAt);
string@[]@ split(const string &in str, const string &in delimiter);
string@ join(const string@[] &in str, const string &in delimiter);

Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.