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.




4
Quebrar a mudança no C ++ 20 ou a regressão no clang-trunk / gcc-trunk ao sobrecarregar a comparação de igualdade com o valor de retorno não-booleano?
O código a seguir é compilado com clang-trunk no modo c ++ 17, mas é interrompido no modo c ++ 2a (próximo c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return Meta{};} …







1
Por que static_cast é necessário na implementação de is_nothrow_constructible do gcc?
Retirado da implementação do GCC de type_traitspor que é static_castnecessário aqui? template <typename _Tp, typename... _Args> struct __is_nt_constructible_impl : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))> {}; template <typename _Tp, typename _Arg> struct __is_nt_constructible_impl<_Tp, _Arg> : public integral_constant<bool, // Why is `static_cast` needed here? noexcept(static_cast<_Tp>(declval<_Arg>()))> {};


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 

1
Classificação não qualificada () - por que compila quando usado em std :: vector e não em std :: array, e qual compilador está correto?
Ao chamar std::sort()um std::array: #include <vector> #include <array> #include <algorithm> int main() { std::vector<int> foo{4, 1, 2, 3}; sort(begin(foo), end(foo)); std::array<int, 4> foo2{4, 1, 2, 3}; sort(begin(foo2), end(foo2)); } O gcc e o clang retornam um erro na classificação no std::array- clang diz erro: uso do identificador não declarado 'sort'; …
11 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.