Preguntas etiquetadas con c++20

C ++ 20 es el objetivo de la versión de C ++ después de C ++ 17. Esta etiqueta debe usarse (junto con la etiqueta de C ++) para preguntas sobre las características de C ++ en camino para C ++ 20.


3
Conceptos de C ++ 20: ¿Qué especialización de plantilla se elige cuando el argumento de plantilla califica para múltiples conceptos?
Dado: #include <concepts> #include <iostream> template<class T> struct wrapper; template<std::signed_integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "signed_integral" << std::endl; } }; template<std::integral T> struct wrapper<T> { wrapper() = default; void print() { std::cout << "integral" << std::endl; } }; int main() { wrapper<int> w; …





2
¿Por qué el mismo concepto verifica la igualdad de tipos dos veces?
Al observar la posible implementación del concepto same_as en https://en.cppreference.com/w/cpp/concepts/same_as noté que algo extraño está sucediendo. namespace detail { template< class T, class U > concept SameHelper = std::is_same_v<T, U>; } template< class T, class U > concept same_as = detail::SameHelper<T, U> && detail::SameHelper<U, T>; La primera pregunta es ¿por …
19 c++  c++20  concept 

4
Enum. Continua C ++ 11
¿Hay alguna manera de verificar en C ++ 11 si una enumeración es continua ? Es totalmente válido dar valores enum que no lo son. ¿Hay tal vez una característica como un rasgo de tipo en C ++ 14, C ++ 17 o tal vez C ++ 20 para verificar …
17 c++  c++11  c++14  c++17  c++20 






2
¿El almacenamiento std :: chrono :: years es realmente de al menos 17 bits?
De cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Usando libc++, parece que el almacenamiento subrayado de std::chrono::yearsis shortestá firmado 16 bits . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB ¿Hay un error tipográfico en cppreference …
14 c++  chrono  c++20  libc++ 

1
if constexpr: ¿por qué se comprueba completamente la declaración descartada?
Estaba jugando con c ++ 20 consteval en GCC 10 y escribí este código #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred, Tuple&& t) noexcept { constexpr std::size_t I = std::tuple_size_v<std::decay_t<decltype(t)>> - N; if constexpr (N == 0u) { return std::nullopt; …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.