D header file for interaction with C++ std::string.

Distributed under the Boost Software License 1.0. (See accompanying file LICENSE)
Guillaume Chatelet Manu Evans
enum DefaultConstruct Default;

Constructor argument for default construction

struct char_traits(CharT);

Character traits classes specify character properties and provide specific semantics for certain operations on characters and sequences of characters.

struct basic_string(T, Traits = char_traits!T, Alloc = allocator!T);

D language counterpart to C++ std::basic_string.

C++ reference:

enum size_type npos;
alias size_type = size_t;
alias difference_type = ptrdiff_t;
alias value_type = T;
alias traits_type = Traits;
alias allocator_type = Alloc;
alias pointer = value_type*;
alias const_pointer = const(value_type)*;
alias toString = as_array;

MSVC allocates on default initialisation in debug, which can't be modelled by D struct

alias length = size;
alias opDollar = length;
const nothrow @safe bool empty();
const pure nothrow @nogc @safe size_t[2] opSlice(size_t dim : 0)(size_t start, size_t end);
inout pure nothrow @nogc ref @safe inout(T) opIndex(size_t index);
inout pure nothrow @nogc @safe inout(T)[] opIndex(size_t[2] slice);
inout pure nothrow @nogc @safe inout(T)[] opIndex();
void clear();
@trusted void resize(size_type n, T c = T(0));
inout nothrow ref @safe inout(T) front();
inout nothrow ref @safe inout(T) back();
const nothrow @safe const(T)* c_str();
ref basic_string opAssign()(auto ref basic_string str);
ref basic_string opAssign(const(T)[] str);
ref basic_string opAssign(T c);
ref basic_string opIndexAssign(T c, size_t index);
ref basic_string opIndexAssign(T c, size_t[2] slice);
ref basic_string opIndexAssign(const(T)[] str, size_t[2] slice);
ref basic_string opIndexAssign(T c);
ref basic_string opIndexAssign(const(T)[] str);
ref basic_string opIndexOpAssign(string op)(T c, size_t index);
ref basic_string opIndexOpAssign(string op)(T c, size_t[2] slice);
ref basic_string opIndexOpAssign(string op)(const(T)[] str, size_t[2] slice);
ref basic_string opIndexOpAssign(string op)(T c);
ref basic_string opIndexOpAssign(string op)(const(T)[] str);
ref basic_string append(T c);
ref basic_string opOpAssign(string op : "~")(const(T)[] str);
ref basic_string opOpAssign(string op : "~")(T c);
ref basic_string erase(size_type pos = 0);
ref basic_string erase(size_type pos, size_type len);
@trusted void push_back(T c);
void pop_back();
this(const(T)[] str);
this(const(T)[] str, ref const(allocator_type) al);
inout ref inout(Alloc) get_allocator();
const nothrow @safe size_type max_size();
const nothrow @safe size_type size();
const nothrow @safe size_type capacity();
inout @safe inout(T)* data();
inout nothrow @trusted inout(T)[] as_array();
inout nothrow ref @trusted inout(T) at(size_type i);
ref basic_string assign(const(T)[] str);
ref basic_string append(const(T)[] str);

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.