AngelScript
|
Path: /sdk/add_on/scriptstdstring/
This add-on registers the std::string
type as-is with AngelScript. This gives perfect compatibility with C++ functions that use std::string
in parameters or as return type.
A potential drawback is that the std::string
type is a value type, thus may increase the number of copies taken when string values are being passed around in the script code. However, this is most likely only a problem for scripts that perform a lot of string operations.
Register the type with RegisterStdString(asIScriptEngine*)
. Register the optional split method and global join function with RegisterStdStringUtils(asIScriptEngine*)
. The optional functions require that the array template object has been registered first.
Refer to the std::string
implementation for your compiler.
class string { // Constructors string(); string(const string &in);
// Property accessor for getting and setting the length uint length { get const; set; }
// Methods for getting and setting the length uint length() const; void resize(uint);
// Assignment and concatenation string &opAssign(const string &in other); string &opAddAssign(const string &in other); string opAdd(const string &in right) const;
// Access individual characters uint8 &opIndex(uint); const uint8 &opIndex(uint) const;
// Comparison operators bool opEquals(const string &in right) const; int opCmp(const string &in right) const;
// Substring string substr(uint start = 0, int count = -1) const; array<string>@ split(const string &in delimiter) const;
// Search int findFirst(const string &in str, uint start = 0) const; int findLast(const string &in str, int start = -1) const;
// Automatic conversion from primitive types to string type string &opAssign(double val); string &opAddAssign(double val); string opAdd(double val) const; string opAdd_r(double 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 &opAssign(bool val); string &opAddAssign(bool val); string opAdd(bool val) const; string opAdd_r(bool val) const; }
// Takes an array of strings and joins them into one string separated by the specified delimiter string join(const array<string> &in arr, const string &in delimiter);
// Formatting numbers into strings // The options should be informed as characters in a string // l = left justify // 0 = pad with zeroes // + = always include the sign, even if positive // = add a space in case of positive number // h = hexadecimal integer small letters // H = hexadecimal integer capital letters // e = exponent character with small e // E = exponent character with capital E string formatInt(int64 val, const string &in options, uint width = 0); string formatFloat(double val, const string &in options, uint width = 0, uint precision = 0);
// Parsing numbers from strings int64 parseInt(const string &in, uint base = 10, uint &out byteCount = 0); double parseFloat(const string &in, uint &out byteCount = 0);