Beman.any_view code review for production ready status

Creating this thread to gather feedback from code review sessions this week.

You can find the repo here: GitHub - bemanproject/any_view: A generalized type-erased view with customizable properties (P3411) · GitHub

You can find notes for a description of the review process here beman_library_maturity_model | The Beman Project . Note that this is the second of 3 overlapping reviews and this we plan to use these to refine the process. The review period will be two weeks.

How to provide feedback.

Per the dicussion in library in a week we recommend the following:

  • General comments, positive, etc: post on this thread

  • Code bugs - create a repo issue for each deficiency preferably with a failing test

  • Documentation issues - best to create an issue and PR for fix, ok to create an issue

Trying to build this morning:

jeff@ub25-04:~/dev/any_view/build$ cmake .. -DCMAKE_CXX_COMPILER=g++-15 -DCMAKE_CXX_STANDARD=26 -DCMAKE_CXX_EXTENSIONS=OFF -G=Ninja

 CMake version is less than 4.3, configuring cmake_instrumentation is unavailable.
-- Found GTest: /usr/lib/aarch64-linux-gnu/cmake/GTest/GTestConfig.cmake (found version "1.15.0")
CMake Error at tests/beman/any_view/CMakeLists.txt:5 (find_package):
  By not providing "Findbenchmark.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "benchmark", but CMake did not find one.

  Could not find a package configuration file provided by "benchmark" with
  any of the following names:

    benchmarkConfig.cmake
    benchmark-config.cmake

  Add the installation prefix of "benchmark" to CMAKE_PREFIX_PATH or set
  "benchmark_DIR" to a directory containing one of the above files.  If
  "benchmark" provides a separate development package or SDK, be sure it has
  been installed.

Thanks for sharing this. When I added the benchmark library dependency, it was originally automatically installed via FetchContent. You need to add -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=use-fetch-content.cmake or use the presets to configure which also do this.