Perguntas com a marcação «c++»

105
Vantagens de passagem por valor e std :: mover passagem por referência

Estou aprendendo C ++ no momento e tento evitar os maus hábitos. Pelo que entendi, o clang-tidy contém muitas "práticas recomendadas" e tento segui-las da melhor maneira possível (embora ainda não entenda necessariamente por que são consideradas boas), mas não tenho certeza se estou entenda o que é...

104
Trocar dois valores de variáveis ​​sem usar a terceira variável

Uma das perguntas mais complicadas feitas em uma entrevista. Troque os valores de duas variáveis ​​como a=10e b=15. Geralmente, para trocar dois valores de variáveis, precisamos da terceira variável como: temp=a; a=b; b=temp; Agora, o requisito é trocar os valores de duas variáveis ​​sem usar...

104
operador bool ++ e -

Hoje, ao escrever algum código Visual C ++, encontrei algo que me surpreendeu. Parece que C ++ suporta ++ (incremento) para bool, mas não - (decremento). É apenas uma decisão aleatória ou há algum motivo por trás disso? Isso compila: static HMODULE hMod = NULL; static bool once = false; if...

104
Como verifico o suporte para C ++ 11?

Existe uma maneira de detectar em tempo de compilação se o compilador oferece suporte a determinados recursos do C ++ 11? Por exemplo, algo assim: #ifndef VARIADIC_TEMPLATES_SUPPORTED #error "Your compiler doesn't support variadic templates. :(" #else template <typename......

104
Como std :: move () transfere valores para RValues?

Eu simplesmente não entendi totalmente a lógica de std::move(). A princípio, pesquisei no Google, mas parece que só existem documentos sobre como usar std::move(), não como funciona sua estrutura. Quer dizer, eu sei o que a função de membro do modelo é, mas quando eu olho para a...

104
Por que argc não é uma constante?

int main( const int argc , const char[] const argv) Como Effective C ++ Item # 3 afirma "Use const sempre que possível", eu começo a pensar "por que não fazer esses parâmetros 'constantes' const"? Existe algum cenário em que o valor de argcé modificado em um

104
É legal indexar em uma estrutura?

Independentemente de quão 'ruim' o código seja, e assumindo que o alinhamento etc. não seja um problema no compilador / plataforma, esse comportamento é indefinido ou está quebrado? Se eu tiver uma estrutura como esta: - struct data { int a, b, c; }; struct data thing; É legal para o acesso a,...

103
Para que serve __gxx_personality_v0?

Esta é uma pergunta de segunda mão de um site de desenvolvimento de sistema operacional, mas me deixou curioso, pois não consegui encontrar uma explicação decente em lugar nenhum. Ao compilar e vincular um programa C ++ independente usando gcc, às vezes ocorre um erro de vinculador como...

103
Por que os literais de caracteres C são ints em vez de chars?

Em C ++ sizeof('a') == sizeof(char) == 1,. Isso faz sentido intuitivo, uma vez que 'a'é um caractere literal e sizeof(char) == 1conforme definido pelo padrão. No entanto, em C sizeof('a') == sizeof(int),. Ou seja, parece que os literais de caracteres C são, na verdade, inteiros. Alguem sabe por...

103
Vida útil garantida de temporário em C ++?

C ++ fornece uma garantia para a vida útil de uma variável temporária que é criada dentro de uma chamada de função, mas não usada como um parâmetro? Aqui está um exemplo de aula: class StringBuffer { public: StringBuffer(std::string & str) : m_str(str) { m_buffer.push_back(0); }...

103
Onde está shared_ptr?

Estou muito frustrado agora, depois de várias horas tentando descobrir onde shared_ptr está localizado. Nenhum dos exemplos que vejo mostra código completo para incluir os cabeçalhos para shared_ptr(e funcionando). Simplesmente afirmando std, tr1e <memory>não está ajudando em nada! Eu baixei...