Literais literais em C ++ gerenciado? (Como "blah" 's @ C #)

votos
8

Existe uma maneira de usar Strings literais em C ++ gerenciado? Semelhante ao C # 's

String Docs = @c:\documents and settings\
Publicado 09/12/2008 em 17:52
fonte usuário
Em outras línguas...                            


3 respostas

votos
9

em C ++ 11, há corda crua literal:

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

saída é:

(\"ddd\aa)\n
(\"ddd\aa)\n
Respondeu 04/03/2013 em 13:20
fonte usuário

votos
6

Isto não é possível no momento. Managed C ++ strings literais têm quase as mesmas regras exatas como strings normais C ++. A especificação gerenciado C ++ é na verdade apenas um aumento de padrão ANSI C ++.

Atualmente, não há suporte para C # estilo sintaxe literal em C ++ (gerenciado ou não). Você deve escapar manualmente cada personagem.

Consulte a Seção 9.1.3.3 na especificação C ++ / CLI para mais detalhes. ( Spec Link)

Respondeu 09/12/2008 em 18:12
fonte usuário

votos
3

Embora não tão concisa como o '@' C # seqüência literal literal, a seguir faz compilação / clr: puro, assim você pode usar C ++ corda cru literais por puro MSIL e um resultado semelhante:

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

strings literais-primas pode ser usado em regular de C ++ também:

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

Google "MSDN C ++ corda literais" para mais informações

Respondeu 09/10/2014 em 18:55
fonte usuário

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