[C++] String class [in development]

02/16/2017 22:29 _bufferoverflowin#1
moin

habe heute angefangen eine art verbesserte string klasse für c++ zu entwickeln, da in der string klasse der STL einige nützliche funktionen fehlen (zB formatierungsmethoden) und es mich ankotzt, dass eine bestimmte menge speicher reserviert wird, egal wie lang der string ist

das ganze basiert auf einem c string (char pointer) und benutzt selbst geschriebene c string funktionen (bis jetzt strcpy und strcmp) und memory funktionen (malloc, realloc, free usw)
die klasse steckt noch in den kinderschuhen
wollte aber trotzdem schon das github repository veröffentlichen, evtl ist ja jemand an der entwicklung interessiert

habe die klasse für mich selber angefangen
also ist es kein weltuntergang wenn sie keiner nutzt


(aktueller Stand)
Vorteile gegenüber std::string
  • dynamische Speicherreservierung (es wird nur das genutzt, was gebraucht wird)



Vorteile gegenüber C strings
  • einfachere Nutzung



Features
  • Überladene mathematische Operatoren: operator=
  • Überladene type Operatoren: char*, std::string (man kann das String Objekt an jede Funktion/Methode geben, die C/C++ Strings nutzt)



Repository
die klasse findet ihr hier: [Only registered and activated users can see links. Click Here To Register...]

im main branch werden stable versionen sein
im dev branch der aktuelle entwicklungsstand


Nutzung
die nutzung ist relativ simpel:

Code:
#include "String.h"
int main()
{
    String str = "string";
    std::cout << str;
    return 0;
}
mfg heap
02/17/2017 02:59 fcsk_aim#2
Seems your class is for BSTRING-like 0-terminated strings? *Joke /And std::string does have dynamic memory allocation \Joke* As-is, your string looks less useful... Also, why do you avoid operator-overloading?

Edit: I will look later intro repository(deeper)
02/17/2017 08:49 He3o Crysis#3
Mir gefällt nicht, da die class nicht header-only ist (könnte man improven, wäre cool!) und außerdem kannst du einfach nen normalen string mit boost::format formatieren (ist header-only :p)

Code:
//sieht dann so aus
std::string test = (boost::format("test %d %s") % 10 % "boo!").str();
//oder so
std::string test = (boost::format("test %1% %2%") % 10 % "boohoo!").str();
c++17 bringt ebenfalls nen paar Funktionen mit, mit denen man effizienter mit Strings arbeiten kann (bspw. string_views)...

Bin aber gespannt wie es mit der Entwicklung voran geht.
Viel Glück/Spaß dir noch.

Socialized
02/17/2017 09:48 ProfessorEnte#4
Eine Frage habe ich noch!

Was genau hat das nun mit Metin2 zu tun?
02/17/2017 10:02 ctra#5
Quote:
Originally Posted by ProfessorEnte View Post
Eine Frage habe ich noch!

Was genau hat das nun mit Metin2 zu tun?
Alles! :D

...Hab ich mich auch gefragt..
02/17/2017 11:06 _bufferoverflowin#6
Quote:
Originally Posted by Socialized View Post
Mir gefällt nicht, da die class nicht header-only ist (könnte man improven, wäre cool!) und außerdem kannst du einfach nen normalen string mit boost::format formatieren (ist header-only :p)

Code:
//sieht dann so aus
std::string test = (boost::format("test %d %s") % 10 % "boo!").str();
//oder so
std::string test = (boost::format("test %1% %2%") % 10 % "boohoo!").str();
c++17 bringt ebenfalls nen paar Funktionen mit, mit denen man effizienter mit Strings arbeiten kann (bspw. string_views)...

Bin aber gespannt wie es mit der Entwicklung voran geht.
Viel Glück/Spaß dir noch.

Socialized
könnte man header-only machen

zu der boost sache:
würde auch funktionieren aber ich zb habe nicht immer lust boost zu nutzen und bei manchen sachen kommt es ja auch auf die größe der binary an ;) da wäre boost kontraproduktiv
und eine format methode ist auch nicht alles, was ich geplant habe

Quote:
Originally Posted by fcsk_aim View Post
As-is, your string looks less useful... Also, why do you avoid operator-overloading?

Edit: I will look later intro repository(deeper)
it's still in development
i already released it because some people may be interested in the development

also, i dont avoid operator overloading
already overloaded 4 operators, more operators will follow

----------------------------------------------------------------------

edit: habs mal header-only gemacht
danke an @[Only registered and activated users can see links. Click Here To Register...] für den "hinweis"
02/18/2017 08:05 .T4Ump#7
Good idea, I look forward to the final work.
02/20/2017 04:39 .Alpha.#8
Auch ganz gut

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]