es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo determinar la longitud del resultado de `fmt::format` sin ejecutarlo?

Al responder a esta pregunta sobre cómo imprimir una matriz 2D de cadenas en una tabla, me di cuenta:

No he encontrado una forma mejor de determinar la longitud del resultado de una llamada a fmt::format que formatearla realmente en una cadena y verificar la longitud de esa cadena.

¿Esto está diseñado así o hay una forma más eficiente de hacerlo? No conozco muy bien los detalles internos de fmtlib, pero imagino que la longitud del resultado se conoce antes de que ocurra la asignación de memoria. Me gustaría evitar especialmente la asignación de memoria.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en c++, es posible determinar la longitud de una llamada a fmt::format sin formatearla en una cadena y verificar su longitud. Esto se logra utilizando la función fmt::formatted_size, que devuelve el tamaño de la cadena formateada sin asignar memoria para ella.

    Por lo tanto, este método es más eficiente y se recomienda para casos en los que se necesita conocer la longitud de la cadena resultante. También es más rápido, ya que evita la asignación de memoria que de otro modo habría ocurrido en el método anterior.

Comments are closed.