Tag: C++-CONCEPTS
¿Es posible saber en tiempo de compilación si una especialización de plantilla con los parámetros dados produciría un error en tiempo de compilación? Lo siguiente fallará en tiempo de compilación. ¿Es posible determinar esto sin saber nada sobre std::find y sin obtener el error en tiempo de compilación? int a; . . . Read more
Tengo la siguiente implementación del concepto de c++ move_constructible de cppreference. template<typename _Tp> concept move_constructible = constructible_from<_Tp, _Tp> && convertible_to<_Tp, _Tp>; No entiendo por qué funciona. Presumo que cualquier tipo se puede convertir a sí mismo, por lo que el segundo requisito es redundante (Dios, debo estar muy equivocado en . . . Read more
Desde C++20, se introdujo el auto restringido a través de: c++ Concept auto identifier = init Lo que significa, por ejemplo: c++ std::integral auto x = 10; es válido. Además, para nuevas expresiones, se permite que el concepto se asocie con auto: c++ new Concept auto { expr }; // . . . Read more
Considere este código: struct Malo {}; int main() { static_assert(requires(int numero, Malo malo) { numero += malo; }); } Compilando con Clang 13 y -std=c++20, obtengo el siguiente error::5:48: error: invalid operands to binary expression (‘int’ and ‘Bad’) static_assert(requires(int n, Bad bad) { n += bad; }); ~ ^ ~~~ . . . Read more