Considerar int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } Entre a inicialização e a exclusão da cópia, você pode ler o ponteiro em a + 1? Além disso, o idioma permite que o compilador seja definido acomo
Considerar int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } Entre a inicialização e a exclusão da cópia, você pode ler o ponteiro em a + 1? Além disso, o idioma permite que o compilador seja definido acomo
Sei que essa pergunta já foi feita várias vezes, mas não consegui encontrar uma resposta para esse caso em particular. Digamos que eu tenho uma classe trivial que não possui nenhum recurso e tem destruidor vazio e construtor padrão. Possui várias variáveis de membro com inicialização em classe;...
Cppreference possui este código de exemplo para std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Mas também diz: std::transformnão garante a aplicação em ordem de...
Eu tenho uma função de modelo sobrecarregada: template<typename T1, typename T2> auto overMax(T1 a, T2 b) { std::cout << __FUNCSIG__ << std::endl; return b < a ? a : b; } template<typename RT, typename T1, typename T2> RT overMax(T1 a, T2 b) { std::cout <<...
Eu quero fazer aproximadamente isso: Thread inicial: escreva alguns valores para vars globais (eles nunca serão escritos novamente) Podem ser dados moderadamente grandes (matrizes, strings, etc.). Não pode ser feito simplesmente std::atomic<>. gerar outros tópicos Outros...
Considere este código: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const...
Como por um determinado tipo de variante using V = std::variant<bool, char, std::string, int, float, double, std::vector<int>>; declarar dois tipos de variantes using V1 = std::variant<bool, char, int, float, double>; using V2 = std::variant<std::string,
Observando a possível implementação do conceito same_as em https://en.cppreference.com/w/cpp/concepts/same_as, notei que algo estranho está acontecendo. namespace detail { template< class T, class U > concept SameHelper = std::is_same_v<T, U>; } template< class T, class U...
Estou trabalhando em um projeto com C ++ 11 e tentei seguir o código #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } Eu recebo o erro do compilador error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const...
https://www.timeanddate.com/date/weekday.html calcula vários fatos sobre um dia do ano, por exemplo: Dada uma data arbitrária, como esses números podem ser calculados com a especificação crono C ++ 20
É thisgarantido que o valor do ponteiro seja constante durante a vida útil de um objeto específico? Não consigo imaginar um caso em que isso mudaria, mas não sei se não estou perdendo alguma
Estou tentando entender o Multi-threading em c ++, mas estou preso neste problema: se eu lançar threads em um loop for, eles imprimirão valores incorretos. Este é o código: #include <iostream> #include <list> #include <thread> void print_id(int id){ printf("Hello from thread...
Considere o seguinte código. void f(double p) {} void f(double* p) {} int main() { f(1-1); return 0; } O MSVC 2017 não compila isso. Parece que há uma chamada sobrecarregada ambígua, como 1-1é a mesma 0e, portanto, pode ser convertida double*. Outros truques, como 0x0, 0L, ou...
Por que esse código grava um número indefinido de números inteiros aparentemente não inicializados? #include <iostream> #include <vector> using namespace std; int main() { for (int i : vector<vector<int>>{{77, 777, 7777}}[0]) cout << i << ' '; } Eu esperava...
Descobri que os lvaluefechamentos lambda sempre podem ser passados como rvalueparâmetros de função. Veja a seguinte demonstração simples. #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1:...
O seguinte programa curto #include <vector> #include <iostream> std::vector<int> someNums() { return {3, 5, 7, 11}; } class Woop { public: Woop(const std::vector<int>& nums) : numbers(nums) {} void report() { for (int i : numbers) std::cout << i << '...
Essa pode ser uma pergunta simples, mas por que um const char * não precisa de um endereço de memória para apontar? Exemplo: const char* a = "Anthony"; e não: const char *a = // Address to const char como quaisquer outros tipos
Nossa equipe está trabalhando com uma base de código C ++ com mais de 10 anos e recentemente mudou para um compilador C ++ 17. Então, estamos procurando maneiras de modernizar nosso código. Em uma conferência no YouTube, ouvi a sugestão de substituir const char*as cordas globais por constexpr...
Existe uma maneira de instalar o Valgrind na Catalina e executá-lo corretamente? Nesse caso, eu apreciaria muito um processo passo a passo. Tentei instalar o Valgrind com https://github.com/sowson/valgrind, mas quando testei helloWorld.cppno terminal, o console retornou erros que eu não deveria...
Dado o seguinte modelo de classe: template<typename T> struct Outer { struct Inner; auto f(Inner) -> void; }; definimos Innerseparadamente para cada especialização de Outer: template<> struct Outer<int>::Inner {}; template<> struct Outer<double>::Inner...