2012-09-01 12 views
6

¿Podría alguien indicarme una lista completa de prefijos/sufijos de tipo de idioma?¿Dónde puedo encontrar una lista de prefijos/sufijos de tipo C++ 11?

ejemplos de prefijos:

auto s1 (u8"I'm a UTF-8 string."); 
auto s2 (u"This is a UTF-16 string."); 
auto s3 (U"This is a UTF-32 string."); 
auto s4 (R"(RAW \ STRING ")"); 
auto s5 (L"wide string"); 
//etc.. 
//*I've only seen prefixes like this for strings. 

ejemplos de sufijos:

auto n1 = 7.2f; 
auto n2 = 7.2d; 
auto n3 = 100L; 
auto n4 = 10000LL; 
//etc.. 

Todos mis intentos de búsqueda me envían a "hacer su propio literales definidos por el usuario".
¿Quizás estas instancias tienen un nombre específico del que no tengo conocimiento?

Respuesta

8

Estos no son prefijos/sufijos de "tipo", estos son prefijos/sufijos literales, ya que se aplican a literales (literales de cadena, literales numéricos, ...). No tienen nombres específicos, porque no son tan interesantes ☺.

la incorporada en prefijos y sufijos en C++ 11 son:

  • enteros:

    • 12U, 12L, 12UL, 12LU, 12LL, 12ULL, 12LLU, 12u, 12uL , 12Lu, 12uLL, 12LLu, 12l, 12Ul, 12lU, 12ll, 12Ull, 12llU, 12ul, 12lu, 12ull, 12llu
  • puntos flotantes:

    • 1.0f, 1.0F, 1.0l, 1.0L
  • caracteres:

    • L'x', u'x', U'x'
  • Cuerdas:

    • u8"xxx", u"xxx", U"xxx", L"xxx", R"(xxx)", u8R"(xxx)", uR"(xxx)", UR"(xxx)", LR"(xxx)"

En particular, 1.0d no es un sufijo C++ 11 incorporado. Algunos compiladores, p. GCC también puede tener extensiones para otros sufijos numéricos, consulte C floating point number notation.


Relevant gramática léxico:

(§2.14.2 literales enteros)

unsigned-sufijo: uno de

u U

largo sufijo: uno de

l L

largo largo sufijo: uno de

ll LL

(§2.14.4 literales flotantes)

flotante sufijo: uno de

f l F L

(§2.14.3 caracteres literales)

carácter literal:

'c-char-secuencia'
u'c-char-secuencia'
U'c-char-secuencia'
L'c- secuencia de caracteres'

y

(§2.14.5 Los literales de cadena)

string-literal:

de codificación de prefijo opt" s-char-secuencia opt"
de codificación de prefijo optRraw-str ing

de codificación de prefijo:

u8
u
U
L

+3

Una mención de literales definidos por el usuario sería bueno. –

+1

@LucDanton: Bueno, creo que OP ya sabe qué son los literales definidos por el usuario (lo mencionó en el segundo párrafo), así que lo dejo afuera. – kennytm

+2

¿Qué pasa si alguien más está interesado en los literales en un sentido más amplio y tropieza con esa pregunta a través de una búsqueda? –

Cuestiones relacionadas