@@ -1023,6 +1023,50 @@ (define-public sobjectizer
development of concurrent and multithreaded applications in C++.")
(license license:bsd-3)))
+(define-public tcb-span
+ ;; No released versions
+ (let ((commit "836dc6a0efd9849cb194e88e4aa2387436bb079b")
+ (revision "0"))
+ (package
+ (name "tcb-span")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tcbrindle/span")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (delete-file "test/catch.hpp")
+ (substitute* "test/CMakeLists.txt"
+ (("add_library.*" line)
+ (string-append
+ line "find_package(Catch2 REQUIRED)\n")))
+ (substitute* (find-files "test" "\\.cpp")
+ (("\"catch.hpp\"") "<catch2/catch.hpp>"))))
+ (sha256
+ (base32
+ "1v3x1mj4if8jrr7cmrcbhv8n8ygla0liqb0dic6g6ji7px2pr6jf"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (copy-recursively
+ "../source/include"
+ (string-append #$output "/include")))))))
+ (native-inputs (list catch2))
+ (home-page "https://github.com/tcbrindle/span")
+ (synopsis "@code{std::span} implementation for older compilers")
+ (description
+ "This package provides a single-header implementation of C++20's
+@code{std::span}, conforming to the C++20 committee draft. It is compatible
+with C++11, but will use newer language features if they are available.")
+ (license license:boost1.0))))
+
(define-public tweeny
(package
(name "tweeny")