Verbatim Literals en Managed C ++? (como C # 's @ "blah")

votos
8

¿Hay alguna manera de usar literales literales verbatim en C ++ administrado? Similar a C # 's

String Docs = @c:\documents and settings\
Publicado el 09/12/2008 a las 17:52
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
9

en C ++ 11, no hay cadena de texto literal:

cout<<R"((\"ddd\aa)\n)"<<endl;
cout<<R"delimiter((\"ddd\aa)\n)delimiter"<<endl;

salida es:

(\"ddd\aa)\n
(\"ddd\aa)\n
Respondida el 04/03/2013 a las 13:20
fuente por usuario

votos
6

Esto no es posible actualmente. Los literales de cadena administrados de C ++ tienen casi las mismas reglas exactas que las cadenas normales de C ++. La especificación C ++ administrada es de hecho solo un aumento del estándar ANSI C ++.

Actualmente no hay soporte para la sintaxis literal del estilo C # en C ++ (administrado o no). Debes escapar manualmente de cada personaje.

Vea la Sección 9.1.3.3 en la especificación C ++ / CLI para más detalles. ( Enlace de especificación)

Respondida el 09/12/2008 a las 18:12
fuente por usuario

votos
3

Si bien no es tan escueto como el '@' C # string literal textualmente, lo siguiente se compila / Clr: puro, por lo que puede utilizar literales de cadena C ++ prima para MSIL pura y un resultado similar:

String^ f = gcnew String(R"(C:\foo\bar.txt)");

literales de cadena primas se pueden utilizar en regulares C ++ también:

char *x = R"(C:\foo\bar.txt)";

Google "MSDN C ++ literales de cadena" para obtener más información

Respondida el 09/10/2014 a las 18:55
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more