\lstdefinelanguage{lCpp}{
number suffixes={eEfFdDlLuU},
language=C++,alsoletter={_\#},
otherkeywords={std::chrono::,std::},
moredelim=**[is][{\xlsthlbox{xlstwarning}}]{|warn|}{|warn|},
moredelim=**[is][{\xlsthlboxd{\xlstcustom}}]{|custom|}{|custom|},
moredelim=[is][{}]{|plain|}{|plain|},
comment=[l]{//},
sensitive=true,
directivestyle=\xlstGetStyle{comments},
morekeywords={malloc,sizeof,calloc,realloc,free},
morekeywords=[2]{Pos,EXIT_SUCCESS,EXIT_FAILURE,NULL},
morekeywords=[4]{ssize_t,size_t,uint8_t,uint16_t,int8_t,int16_t,int_least8_t,int_fast8_t,int_fast16_t,string},
morekeywords=[5]{iostream,strtok,fgets,cout,cin,endl},
morecomment=[s]{/*}{*/},
% escape and format sequences:
add to literate={\\u}{{\xlstGet{keywordB}{\textbackslash u}}}2 {\\n}{{\xlstGet{keywordB}{\textbackslash n}}}2 {\\r}{{\xlstGet{keywordB}{\textbackslash r}}}2 {\\t}{{\xlstGet{keywordB}{\textbackslash t}}}2 {\\033[}{{\xlstGet{keywordB}{\textbackslash033[}}}4 {\\"}{{\xlstGet{keywordB}{\textbackslash\dq}}}2 {\\\\}{{\xlstGet{keywordB}{\textbackslash\textbackslash}}}2 {\%c}{{\xlstGet{keywordB}{\%c}}}2 {\%d}{{\xlstGet{keywordB}{\%d}}}2 {\%s}{{\xlstGet{keywordB}{\%s}}}2 {\%n}{{\xlstGet{keywordB}{\%n}}}2 {\%b}{{\xlstGet{keywordB}{\%b}}}2,
morestring=[b]',
}
\RegisterLanguage{cpp}{lCpp}