Tag: COMPILE-TIME
Este es una versión simplificada y reproducible de mi código: type_id.h template<typename> void type_id() {} typedef void(*type_id_t)(); c_sort.h (basado en esta respuesta) template<typename array=””> constexpr void c_sort_impl(Array& array) noexcept { using size_type = typename Array::size_type; size_type gap = array.size(); bool swapped = false; while ((gap > size_type{ 1 }) or . . . Read more
Esta podría ser una pregunta débil de hacer, ya que no ha pasado mucho tiempo desde que empecé a usar Dart. Si entendí correctamente, un constructor de clase en Dart declarado usando la palabra clave “const” debería crear objetos “constantes en tiempo de compilación” y esos objetos solo tienen campos . . . Read more
Considere estos 2 ejemplos Ejemplo 1 template<Type type> static BaseSomething* createSomething(); template<> BaseSomething* createSomething<Type::Something1>() { return Something1Creator.create(); } template<> BaseSomething* createSomething<Type::Something2>() { return Something2Creator.create(); } …. // otros somethings Ejemplo 2 template<Type type> static BaseSomething* createSomething() { if constexpr(type == Type::Something1) { return Something1Creator.create(); } else if constexpr(type == Type::Something2) . . . Read more
Me gustaría expresar, de manera compilada, que mi código funciona bajo la suposición de que un valor es una cierta constante. Para simplificar, digamos que tengo este módulo: module Lib : sig type t = A|B|C|D val default : t val f : t option -> unit end = struct . . . Read more
Un colega mío está utilizando ObsoleteAttribute en los métodos aún no implementados para que recibamos una advertencia en tiempo de compilación. Sin embargo, como un método por implementar está en el lugar exactamente opuesto a uno obsoleto, eso me molesta. No veo un NotYetImplementedButPleaseBePatientWeVeGotLoadsOfOtherThingsToDoAsWellAttribute en la documentación, por lo que . . . Read more