I made this simple code which makes easy HTML tag generation. It is open-source and right now only makes tag names and replaces tags... :/#include <iostream>#include <fstream>std::string makeHtmlTags(std::string tagname, std::string tagcontent) {    return < + tagname + > + tagcontent + </ + tagname + >;}void changeHtmlTag(std::string * tag, std::string newtagname){    if(tag->at(2) != '/')        *tag = < + newtagname + >;    else        *tag = </ + newtagname + >;}int main(){    std::string html = makeHtmlTags(hello, world);    std::string tag1 = html.substr(2, 5);    changeHtmlTag(&tag1, goodbye);    changeHtmlTag(&tag1, /goodbye);    std::cout << tag1;}What can I do to make it more useful?
C++ Super Simple HTML Tag Generating Code v0.1
c++;html
OOP(s)!Right now, the meat of your code is two separate functions, just floating around and minding their own business.It would be better practice to put these two functions into a utility class. That way, they both exist together and can be easily accessed from the same parent.I think these methods should be static.EDIT:According to Jerry Coffin,These don't look like member functions to me. In any case, a class  that contains only static functions should usually be a namespace  instead.  Jerry CoffinVersatilityIt is very, very uncommon for an HTML tag to just be a tag along with inner content; there are almost always attributes.Right now, your code can only generate something like this: <foo>bar</foo>What about this?<foo spam=eggs>bar</foo>To improve you code, I recommend create a class/struct that stores the attribute name and value, like this:typedef struct {    std::string name;    std::string val;} HTML AttributeThen, your method could take an array of these and loop through them, adding them to the string each time.