Espaços nominais
Variantes
Acções

Value categories

Da cppreference.com
< cpp‎ | language

 
 
Linguagem C + +
Tópicos gerais
Original:
General topics
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Controle de fluxo
Original:
Flow control
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Declarações execução condicional
Original:
Conditional execution statements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Instruções de iteração
Original:
Iteration statements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Ir declarações
Original:
Jump statements
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Funções
Original:
Functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
declaração da função
lambda declaração da função
modelo de função
linha especificador
especificações de exceção (obsoleta)
noexcept especificador (C++11)
Exceções
Original:
Exceptions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Namespaces
Original:
Namespaces
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipos
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
decltype specifier (C++11)
Especificadores
Original:
Specifiers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
cv especificadores
armazenamento duração especificadores
constexpr especificador (C++11)
auto especificador (C++11)
alignas especificador (C++11)
Inicialização
Original:
Initialization
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Literais
Original:
Literals
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Expressões
Original:
Expressions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
categorias de valor
ordem de avaliação
representações alternativas
Utilitários
Original:
Utilities
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Tipos
Original:
Types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
typedef declaration
tipo de alias declaração (C++11)
atributos (C++11)
Conversões
Original:
Casts
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
conversões implícitas
const_cast conversion
static_cast conversion
dynamic_cast conversion
reinterpret_cast conversion
Elenco C-estilo e funcional
Alocação de memória
Original:
Memory allocation
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Classes
Original:
Classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Classe propriedades específicas de função
Original:
Class-specific function properties
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Funções membro especiais
Original:
Special member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Modelos
Original:
Templates
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
modelo de classe
modelo de função
especialização de modelo
pacotes de parâmetros (C++11)
Diversos
Original:
Miscellaneous
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Assembly embutido
 
Quando uma expressão C + + (um operador com seus argumentos) é avaliada, resulta em um valor de algum tipo de referência não. Cada expressão pertence a exatamente uma das categorias de valor primários.
Original:
When a C++ expression (an operator with its arguments) is evaluated, it results in a value of some non-reference type. Each expression belongs to exactly one of the primary value categories.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Índice

[editar] Categorias principais

[editar] lvalue

Um lvalue é uma expressão que identifica um objeto não-temporária ou uma função não-membro.
Original:
An lvalue is an expression that identifies a non-temporary object or a non-member function.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
As expressões a seguir são lvalues:
Original:
The following expressions are lvalues:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • O nome de um objeto ou função em seu escopo, independente do tipo, como std::cin ou std::endl. Mesmo se o tipo do objeto é referência rvalue, a expressão que consiste de seu nome é uma expressão lvalue.
    Original:
    The name of an object or function in scope, regardless of type, such as std::cin or std::endl. Even if the object's type is rvalue reference, the expression consisting of its name is an lvalue expression.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Chamada de função ou expressão operador se o tipo de operador ou da função de retorno é uma referência lvalue, como std::getline(cin, str) ou cout << 1 ou ou ++n ou *p
    Original:
    Function call or operator expression if the function's or operator's return type is an lvalue reference, such as std::getline(cin, str) or cout << 1 or or ++n or *p
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Lançai expressão para lvalue tipo de referência.
    Original:
    Cast expression to lvalue reference type.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Expressão da função chamada, se o tipo de retorno da função é rvalue referência ao tipo de função (raro)
    Original:
    Function call expression if the function's return type is rvalue reference to function type (rare)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Moldar a expressão rvalue referência à função.
    Original:
    Cast expression to rvalue reference to function.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Propriedades:
Original:
Properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Mesmo que glvalue (abaixo)
    Original:
    Same as glvalue (below)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Endereço de uma lvalue podem ser tomadas: &++i e &std::endl são expressões válidas.
    Original:
    Address of an lvalue may be taken: &++i and &std::endl are valid expressions.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Um lvalue modificável pode ser utilizada como argumento (à esquerda), antes de o operador de atribuição built-in.
    Original:
    A modifiable lvalue may be used as the first (left) argument of the built-in assignment operator.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Um lvalue pode ser utilizado para inicializar uma referência lvalue; este associa um novo nome com o objecto identificado pela expressão.
    Original:
    An lvalue may be used to inicializar uma referência lvalue; this associates a new name with the object identified by the expression.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] rvalue NJ NJ / prvalue

A prvalue é uma expressão que identifica um objeto temporário (ou de um seu subobjeto) ou é um valor não associado a qualquer objeto.
Original:
A prvalue is an expression that identifies a temporary object (or a subobject thereof) or is a value not associated with any object.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
As expressões a seguir são prvalues:
Original:
The following expressions are prvalues:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Literal, como 42 ou true ou nullptr.
    Original:
    Literal, such as 42 or true or nullptr.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Expressão da função de chamada / operador, se a sua função ou o tipo do operador de retorno não é uma referência, como str.substr(1, 2) ou 2+2
    Original:
    Function call/operator expression if the function's or the operator's return type is not a reference, such as str.substr(1, 2) or 2+2
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Moldar a expressão de qualquer outro tipo de tipo de referência.
    Original:
    Cast expression to any type other than reference type.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • As expressões lambda, como  [](int x){return x*x;}
    Original:
    Lambda expressions, such as  [](int x){return x*x;}
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Propriedades:
Original:
Properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Mesmo que rvalue (abaixo)
    Original:
    Same as rvalue (below)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • um prvalue não podem ser polimórficos: o tipo dinâmico do objecto identifica é sempre o tipo da expressão.
    Original:
    a prvalue cannot be polymorphic: the dynamic type of the object it identifies is always the type of the expression.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • um prvalue não-classe não pode ser const qualificado.
    Original:
    a non-class prvalue cannot be const-qualified.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] xValue NJ

Um xValue é uma expressão que identifica uma "expirar" objeto, isto é, o objeto que pode ser transferido de. O objeto identificado por uma expressão xValue pode ser temporário sem nome, que pode ser um objeto chamado no escopo, ou qualquer outro tipo de objeto, mas se usado como um argumento de função, xValue sempre ligar para a sobrecarga de referência rvalue se disponível.
Original:
An xvalue is an expression that identifies an "expiring" object, that is, the object that may be moved from. The object identified by an xvalue expression may be a nameless temporary, it may be a named object in scope, or any other kind of object, but if used as a function argument, xvalue will always bind to the rvalue reference overload if available.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Apenas as seguintes expressões são XValues:
Original:
Only the following expressions are xvalues:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Uma expressão chamada de função, se o tipo de retorno da função é uma referência para rvalue tipo de objeto, como std::move(val)
    Original:
    A function call expression, if the function's return type is an rvalue reference to object type, such as std::move(val)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • A expressão de conversão a uma referência para rvalue tipo de objeto, como static_cast<T&&>(val) ou (T&&)val
    Original:
    A cast expression to an rvalue reference to object type, such as static_cast<T&&>(val) or (T&&)val
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • um não-estático classe expressão acesso de membros, em que a expressão objeto é uma xValue
    Original:
    a non-static class member access expression, in which the object expression is an xvalue
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Uma expressão de ponteiro-para-membro em que o primeiro operando é um xValue eo segundo operando é um ponteiro para membro de dados.
    Original:
    A pointer-to-member expression in which the first operand is an xvalue and the second operand is a pointer to data member.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Propriedades:
Original:
Properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Mesmo que rvalue (abaixo)
    Original:
    Same as rvalue (below)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Mesmo que glvalue (abaixo)
    Original:
    Same as glvalue (below)
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
Como prvalues, XValues ​​ligar a rvalue referências, mas ao contrário prvalues, um xValue pode ser polimórfico, e um xValue não-classe pode ser cv qualificado.
Original:
Like prvalues, xvalues bind to rvalue references, but unlike prvalues, an xvalue may be polymorphic, and a non-class xvalue may be cv-qualified.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Categorias mistas

[editar] glvalueNJ

A glvalue é uma expressão que é ou um lvalue ou um xValue.
Original:
A glvalue is an expression that is either an lvalue or an xvalue.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Propriedades:
Original:
Properties:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • A glvalue pode ser convertido implicitamente em prvalue com lvalue-a-rvalue, array para ponteiro, ou função para ponteiro-conversão implícita.
    Original:
    A glvalue may be implicitly converted to prvalue with lvalue-to-rvalue, array-to-pointer, or function-to-pointer conversão implícita.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • A glvalue pode ser polimórfica: o tipo dinâmico do objeto que identifica não é necessariamente o tipo estático da expressão.
    Original:
    A glvalue may be polymorphic: the dynamic type of the object it identifies is not necessarily the static type of the expression.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] rvalue NJ

Um rvalue é uma expressão que é um prvalue ou um xValue.
Original:
An rvalue is an expression that is either a prvalue or an xvalue.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Propriedades (nota, estes se aplicam a ambos XValues ​​e prvalues, o que significa que se aplicam a pré-C + 11 rvalues ​​também)
Original:
Properties (note, these apply to both xvalues and prvalues, which means they apply to the pre-C++11 rvalues as well)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
  • Endereço de um rvalue não pode ser tomada: &i++ e &42 e &std::move(val) são inválidos.
    Original:
    Address of an rvalue may not be taken: &i++ and &42 and &std::move(val) are invalid.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Um rvalue pode ser utilizado para inicializar uma referência lvalue const, caso em que o tempo de vida do objecto identificado pelo rvalue é estendido até que o alcance das extremidades de referência.
    Original:
    An rvalue may be used to inicializar uma referência lvalue const, in which case the lifetime of the object identified by the rvalue is extended until the scope of the reference ends.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Um rvalue pode ser utilizado para inicializar uma referência rvalue, caso em que o tempo de vida do objecto identificado pelo rvalue é estendido até que o alcance das extremidades de referência.
    Original:
    An rvalue may be used to inicializar uma referência rvalue, in which case the lifetime of the object identified by the rvalue is extended until the scope of the reference ends.
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.
  • Quando usado como um argumento da função e quando dois sobrecargas de função estão disponíveis, tendo um parâmetro de referência rvalue eo outro tendo referência a lvalue parâmetro const, rvalues ​​ligar à sobrecarga de referência rvalue (assim, se ambos os construtores de cópia e movimento estão disponíveis, argumentos rvalue invocar o mover construtor, e também com cópia e mover operadores de atribuição).
    Original:
    When used as a function argument and when two overloads of the function are available, one taking rvalue reference parameter and the other taking lvalue reference to const parameter, rvalues bind to the rvalue reference overload (thus, if both copy and move constructors are available, rvalue arguments invoke the mover construtor, and likewise with copy and move assignment operators).
    The text has been machine-translated via Google Translate.
    You can help to correct and verify the translation. Click here for instructions.

[editar] Categorias especiais

[editar] Pendente chamada de função membro

As expressões obj.*mfp e ptr->*mfp onde mfp é um ponteiro para função de membro, são classificados como expressões prvalue, mas eles não podem ser usados ​​para inicializar as referências, como argumentos da função, ou para qualquer finalidade de todo, excepto quando o argumento do lado esquerdo de uma função chamar expressão, por exemplo, (pobj->*ptr)(args).
Original:
The expressions obj.*mfp and ptr->*mfp where mfp is a pointer to member function, are classified as prvalue expressions, but they cannot be used to initialize references, as function arguments, or for any purpose at all, except as the left-hand argument of a function call expression, e.g. (pobj->*ptr)(args).
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[editar] Anular expressões

Expressões de chamada de função retornando void, lançou expressões para void, e jogue-expressões são classificados como expressões prvalue, mas eles não podem ser usados ​​para inicializar referências ou como argumentos da função. Eles podem ser usados ​​no contexto descartados de valor (por exemplo, sobre uma linha de seu próprio, como o argumento esquerdo do operador de vírgula, etc) e na demonstração return num void função de retorno. Além disso, lançam-expressões (mas não prvalues ​​vazios outros) podem ser usados ​​como o segundo e o terceiro operandos da operador condicional?:.
Original:
Function call expressions returning void, cast expressions to void, and throw-expressions are classified as prvalue expressions, but they cannot be used to initialize references or as function arguments. They can be used in a discarded-value context (e.g. on a line of its own, as the left argument of the comma operator, etc) and in the return statement in a function returning void. In addition, throw-expressions (but not other void prvalues) may be used as the second and the third operands of the operador condicional?:.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.