tl-ranges - Instalación bajo mingw-w64

La biblioteca tl-ranges de Sy Brand [1], distribuida bajo una licencia de dominio público, proporciona una excelente implementación de adaptadores de rangos que no llegaron a ser incluidos en C++20. Entre ellos destacaríamos (los elementos estandarizados en C++23 se indican con un asterisco):

  • views::adjacent y views::adjacent_transform (*).
  • views::cartesian_product (*).
  • views::chunk (*), views::chunk_by (*) y views::chunk_by_key.
  • views::cycle.
  • views::enumerate.
  • views::generate y views::generate_n.
  • views::getlines.
  • views::repeat (*) y views::repeat_n.
  • views::stride (*).
  • to (*), para convertir rangos en contenedores.
  • views::transform_join y views::transform_maybe.
  • views::zip (*) y views::zip_transform (*).
Se incluyen, asimismo, herramientas de programación funcional como compose y bind_back. Puede consultarse la documentación de la biblioteca en la referencia [2].

Esta biblioteca fue empleada en un artículo anterior con el fin de demostrar el modo de empleo de la vista std::views::chunk_by (C++23). Describiremos a continuación el procedimiento de instalación de esta biblioteca en MS Windows a través de MSYS2, concretamente con el entorno de desarrollo mingw-w64 (véase esta serie de posts para más detalles).

En primer lugar, acudiremos a Inicio de Windows y abriremos 'MSYS2 MinGW 64-bit' en modo administrador. A continuación, ejecutaremos, uno a uno, los siguientes comandos:
  1. git clone https://github.com/TartanLlama/ranges.git
  2. cd ranges
  3. cmake -B build -G "MinGW Makefiles"
  4. cmake --install build
La biblioteca quedará así instalada en la carpeta 'C:/Program Files (x86)/tl-ranges'. El enlace a la biblioteca en ficheros de configuración CMakeLists.txt tomará la forma:

   find_package(tl-ranges REQUIRED)    target_link_libraries(${PROJECT_NAME} PRIVATE       # ...       tl::ranges    )


Referencias bibliográficas:
  1. TartanLlama/ranges - https://github.com/TartanLlama/ranges
  2. Ranges - tl libraries documentation - https://tl.tartanllama.xyz/en/latest/api/ranges/index.html

No hay comentarios:

Publicar un comentario