▁type ▁in ▁Microsoft ' s ▁M FC . ▁While ▁ ▁standard ized ▁strings , ▁legacy ▁applications ▁still ▁commonly ▁contain ▁such ▁custom ▁string ▁types ▁and ▁libraries ▁may ▁expect ▁C - style ▁strings , ▁making ▁it ▁" virt ually ▁impossible " ▁to ▁avoid ▁using ▁multiple ▁string ▁types ▁in ▁C ++ ▁programs ▁and ▁requiring ▁program mers ▁to ▁decide ▁on ▁the ▁desired ▁string ▁representation ▁ahead ▁of ▁starting ▁a ▁project . ▁ ▁In ▁a ▁ 1 9 9 1 ▁ret ros pective ▁on ▁the ▁history ▁of ▁C ++, ▁its ▁invent or ▁B jar ne ▁Str ou stru p ▁called ▁the ▁lack ▁of ▁a ▁standard ▁string ▁type ▁( and ▁some ▁other ▁standard ▁types ) ▁in ▁C ++ ▁ 1 . 0 ▁the ▁worst ▁mistake ▁he ▁made ▁in ▁its ▁development ; ▁" the ▁absence ▁of ▁those ▁led ▁to ▁everybody ▁re - in vent ing ▁the ▁wheel ▁and ▁to ▁an ▁unnecessary ▁divers ity ▁in ▁the ▁most ▁fundamental ▁classes ". ▁ ▁Im plementation ▁issues ▁The ▁various ▁vend ors ' ▁string ▁types ▁have ▁different ▁implementation ▁strateg ies ▁and ▁performance ▁characteristics . ▁In ▁particular , ▁some ▁string ▁types ▁use ▁a ▁copy - on - write ▁strategy , ▁where ▁an ▁operation ▁such ▁as ▁ ▁string ▁a ▁= ▁" hello ! "; ▁string ▁b ▁= ▁a ; ▁// ▁Copy ▁constructor ▁ ▁does ▁not ▁actually ▁copy ▁the ▁content ▁of ▁ ▁to ▁; ▁instead , ▁both ▁strings ▁share ▁their ▁contents ▁and ▁a ▁reference ▁count ▁on ▁the ▁content ▁is ▁increment ed . ▁The ▁actual ▁copying ▁is ▁post pon ed ▁until ▁a ▁mut ating ▁operation , ▁such ▁as ▁app ending