Concat-zwei `const char` string-Literale

Ist es möglich, concat zwei string-Literale mit einem constexpr? Oder anders gesagt, kann man beseitigen-Makros in code wie:

#define nl(str) str "\n"

int main()
{
  std::cout <<
      nl("usage: foo")
      nl("print a message")
      ;

  return 0;
}

Update: Es ist nichts falsch mit der Verwendung "\n", jedoch würde ich gerne wissen, ob man kann constexpr solche zu ersetzen, die Art der Makros.

Was ist falsch mit "usage: foo\n" "print a message\n"?
Wahrscheinlich am besten zu verwenden std::endl eher als \n
Oder sogar "usage: foo\nprint a message\n"?
wahrscheinlich nicht. Wenn Sie möchten, drucken Sie einen Zeilenumbruch, warum würden Sie print ein Zeilenvorschub und flush?
std::endl überlastet ist, wenn Sie wollen einfach nur '\n'. Also ich glaube nicht, dass std::endl verwendet werden sollte anstelle von '\n'.

InformationsquelleAutor Micha Wiedenmann | 2012-11-08

Schreibe einen Kommentar