#include "pip.h" class ConstChars { public: inline ConstChars() : len(0), str(nullptr) {} inline ConstChars(const char * string) { str = string; len = strlen(string); } inline ConstChars(const char * data, size_t size) { str = data; len = size; } // inline ROString(const char string[]) { // str = string; // len = sizeof(string); // } inline const char & operator[](size_t pos) const {return str[pos];} inline const char * data() const {return str;} inline bool isEmpty() const {return len == 0;} inline bool isNotEmpty() const {return len > 0;} inline size_t length() const {return len;} inline size_t size() const {return len;} inline ssize_t size_s() const {return len;} //! \~\brief //! \~english Assign operator. //! \~russian Оператор присваивания. inline ConstChars & operator =(const ConstChars & s) { if (this == &s) return *this; len = s.len; str = s.str; return *this; } //! \~\brief //! \~english Assign move operator. //! \~russian Оператор перемещающего присваивания. inline ConstChars & operator =(ConstChars && s) { swap(s); return *this; } inline void swap(ConstChars& v) { piSwap(str, v.str); piSwap(len, v.len); } private: size_t len; const char * str; }; PICout operator <<(PICout s, const ConstChars & v) { s.space(); s.quote(); s.write(v.data(), v.size()); s.quote(); return s; } int main(int argc, char * argv[]) { // const char * dd = "12345"; // char text[]{ "hello" }; // ConstChars s("test"); // piCout << s; // ConstChars s2; // piCout << s2; // s2 = s; // piCout << s2; // s2 = text; // s = s2; // piCout << s << s2; //// s2 = s; // text[1] = '0'; // piCout << text; // piCout << s << s2 << ConstChars(text, 3); //// piCout << s << s2; //// PIString ss(s.data(), s.length()); //// piCout << ss; // PICout(PICoutManipulators::DefaultControls | PICoutManipulators::AddQuotes) << PIString(dd); // piCout << PIString::fromUTF8("test"); // piCout << PIString::fromUTF8("бюд\n"); // piCout.writePIString(PIString::fromUTF8("test\n")); // piCout.writePIString(PIString::fromUTF8("бюд\n")); // piCout << "бюд\n"; PIVector v{1.1, 2.5, 3.8}; PIVector v2 = v.toType(); piCout << v2; return 0; }