#include <string>
#include <iostream>
using namespace std;
template<size_t symbols_count> auto
foo(const char (& sz_text)[symbols_count]) -> void { cout << 0; }
auto
foo(char const * & psz_text) -> void { cout << 1; }
auto
foo(char const * && psz_text) -> void { cout << 2; }
int main()
{
foo("qqq"); // вызовет (0)
const char sz_text[] = {"www"};
foo(sz_text); // вызовет (0)
char const * psz_text("eee");
foo(psz_text); // вызовет (1)
::std::string text("rrr");
foo(text.c_str()); // // вызовет (2)
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHNpemVfdCBzeW1ib2xzX2NvdW50PiBhdXRvCmZvbyhjb25zdCBjaGFyICgmIHN6X3RleHQpW3N5bWJvbHNfY291bnRdKSAtPiB2b2lkIHsgY291dCA8PCAwOyB9CgphdXRvCmZvbyhjaGFyIGNvbnN0ICogJiBwc3pfdGV4dCkgLT4gdm9pZCB7IGNvdXQgPDwgMTsgfQoKYXV0bwpmb28oY2hhciBjb25zdCAqICYmIHBzel90ZXh0KSAtPiB2b2lkIHsgY291dCA8PCAyOyB9CgppbnQgbWFpbigpCnsKZm9vKCJxcXEiKTsgLy8g0LLRi9C30L7QstC10YIgKDApCmNvbnN0IGNoYXIgc3pfdGV4dFtdID0geyJ3d3cifTsKZm9vKHN6X3RleHQpOyAvLyDQstGL0LfQvtCy0LXRgiAoMCkKY2hhciBjb25zdCAqIHBzel90ZXh0KCJlZWUiKTsKZm9vKHBzel90ZXh0KTsgLy8g0LLRi9C30L7QstC10YIgKDEpCjo6c3RkOjpzdHJpbmcgdGV4dCgicnJyIik7CmZvbyh0ZXh0LmNfc3RyKCkpOyAvLyAvLyDQstGL0LfQvtCy0LXRgiAoMikKcmV0dXJuIDA7Cn0=