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

C ++ é uma linguagem de programação de uso geral. Foi originalmente projetado como uma extensão para C e tem uma sintaxe semelhante, mas agora é uma linguagem completamente diferente. Use esta tag para perguntas sobre o código (a ser) compilado com um compilador C ++. Use uma tag específica da versão para perguntas relacionadas a uma revisão padrão específica [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20] etc.

3
Inicialização da lista de cópias? Por que isso compila?
Estou usando a Comunidade do Microsoft Visual Studio 2019, V16.5.2. Quero testar a inicialização da lista Por favor, veja o seguinte programa de teste: #include <string> void foo(std::string str) {} int main() { foo( {"str1", "str2"} ); return 0; } Isso compila sem erro e aviso. Por quê? Dá um …
13 c++ 

1
std :: is_constructible retorna um valor inconsistente para o construtor privado
Quais são as regras pelas quais std::is_constructiblelida com construtores privados? Dado o seguinte código: #include <iostream> class Class { private: Class() { } }; template <typename T> class Test { public: static void test() { std::cout //<< std::is_constructible<Class>::value << std::is_constructible<T>::value << std::endl; } }; int main() { Test<Class>::test(); } Isso …
13 c++  typetraits 



2
Como uma const expr pode ser avaliada tão rapidamente
Eu tenho experimentado expressões const que são avaliadas em tempo de compilação. Mas eu brinquei com um exemplo que parece incrivelmente rápido quando executado em tempo de compilação. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () { long …
13 c++  const  constexpr 

6
Como comparar estruturas genéricas em C ++?
Quero comparar estruturas de uma maneira genérica e fiz algo parecido com isto (não posso compartilhar a fonte real, portanto, solicite mais detalhes, se necessário): template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) == 0; } Isso funciona …


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
Como determinar quais arquivos de cabeçalho incluir?
Digamos que eu tenho o código abaixo (muito simples). #include <iostream> int main() { std::cout << std::stoi("12"); } Isso compila bem no g ++ e no clang; no entanto, ele falha ao compilar no MSVC com o seguinte erro: erro C2039: 'stoi': não é membro de 'std' erro C3861: 'stoi': …
13 c++ 


1
Operador ambíguo em gcc
Eu criei um modelo de função para imprimir alguns contêineres stl #include <iostream> #include <vector> #include <string> template <template <typename, typename> class C, typename T, typename A> std::ostream& operator<<(std::ostream& os, const C<T, A>& container) { for (auto& elem : container) { os << elem << " "; } return os; …
13 c++  c++17 

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.