Czyli jak uciec od escapowania znaków specjalnych w C++.

Niby drobiazg, ale…

…warto go znać. Mianowicie, zamiast pisać jak dotychczas:

string path = "D:\\torrent\\nightwish\\";

, możemy teraz napisać:

string path = R"(D:\torrent\nightwish\)";

, nie bawiąc się już w escapowanie znaków specjalnych.

Jak to działa?

Nowy standarc C++ daje nam konstrukcję R”( … )”.

Wszystko to, co wewnątrz R”( … )” będzie potraktowane jako raw string. Czyli bez przetwarzania symboli:

\”    \\     \0     \n     \t

, i tak dalej (patrz: pełna lista escape characters).

Podsumowując

Konstrukcja raw string może być i IMO jest odrobinę… toporna (po co te nawiasy?), ale ułatwia życie. Szczególnie, kiedy przychodzi do pisania wyrażeń regularnych.

…tak więc – enjoy new feature, folks! ;)

Related Posts: