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

Use essa tag para código que deve ser compilado como C ++ 11 (sem usar os recursos introduzidos no C ++ 14 ou posterior).

2
Este é um construtor de estilo C ++ antigo?
Aqui está um pedaço de código C ++. Neste exemplo, muitos blocos de código parecem chamadas de construtor. Infelizmente, o código de bloco nº 3 não é (você pode verificá-lo usando https://godbolt.org/z/q3rsxn e https://cppinsights.io ). Eu acho que é uma notação antiga do C ++ e poderia explicar a introdução …
17 c++  c++11 

3
Modelos variáveis: desdobrar argumentos em grupos
Eu tenho uma função que leva dois argumentos: template <typename T1, typename T2> void foo(T1 arg1, T2 arg2) { std::cout << arg1 << " + " << arg2 << '\n'; } E uma variável que deve encaminhar seus argumentos em pares: template <typename... Args> void bar(Args&&... args) { static_assert(sizeof...(Args) % …


3
Classificando um vetor em ordem decrescente dentro de dois intervalos
Digamos que eu tenha um vetor de números inteiros: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Então eu classifico em ordem decrescente: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Isso produz o seguinte: 14 13 12 11 10 …

1
Posso listar a inicialização do std :: vector com o encaminhamento perfeito dos elementos?
Percebi que a initalização de lista agregada do std :: vector realiza a inicialização da cópia quando a movimentação é mais aplicável. Ao mesmo tempo, vários emplace_backs fazem o que eu quero. Eu só poderia encontrar esta solução imperfeita de escrever uma função de modelo init_emplace_vector. É ideal apenas para …

3
Por que a dimensão de uma matriz faz parte de seu tipo?
Ao ler o livro C ++ Primer, deparei-me com esta declaração: "O número de elementos em uma matriz faz parte do tipo da matriz". Então, eu queria descobrir usando o seguinte código: #include<iostream> int main() { char Array1[]{'H', 'e', 'l', 'p'}; char Array2[]{'P', 'l', 'e', 'a', 's', 'e'}; std::cout<<typeid(Array1).name()<<std::endl; //prints …
14 c++  arrays  c++11 


4
A explicação de uma ordem relaxada é errônea na preferência?
Na documentação de std::memory_orderem cppreference.com, há um exemplo de pedido relaxado: Ordenação descontraída As operações atômicas marcadas memory_order_relaxednão são operações de sincronização; eles não impõem uma ordem entre acessos simultâneos à memória. Eles garantem apenas consistência de ordem de atomicidade e modificação. Por exemplo, com xey inicialmente zero, // Thread …

1
Possível bug do compilador no MSVC
O código a seguir é compilado com gcc e clang (e muitos outros compiladores C ++ 11) #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template <typename T> class data { public: data(datatype dt = …
13 c++  c++11  visual-c++ 


2
Por que uma variável enum é um rvalue aqui?
Exemplo: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Eu recebo o seguinte erro ao compilar isso: <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type …


3
Como descobrir quais funções o compilador gerou?
Conheço as funções geradas pelo compilador, a regra de três e a regra de cinco. Em cenários do mundo real, pode não ser trivial descobrir exatamente quais funções geradas pelo compilador (construtores, operadores de atribuição, destruidor) foram realmente criadas pelo compilador. Existe alguma maneira de listar as funções geradas pelo …
11 c++  c++11 



Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.