gpt4 book ai didi

c++11 - 如何使用 cmake 测试我的库中的 static_assert?

转载 作者:行者123 更新时间:2023-12-04 07:02:33 28 4
gpt4 key购买 nike

在我的库代码中,我有一堆 static_asserts。我想测试它们是否在预期条件下开火。

我想编写一系列测试文件和

  • 确保它们无法编译
  • 检查来自静态断言的预期消息的编译尝试的输出

  • 有谁知道如何用cmake做到这一点?

    AFAICT,try_compile 不是答案,因为它是在运行 cmake 时执行的。我需要在 make 期间执行这些检查。

    最佳答案

    您可以为这些测试设置一个“嵌套”项目,将其配置为 CMake 运行的一部分,然后使用 cmake --build 构建它。 ;像这样:

    你正常的 CMakeLists.txt:

    # ...
    execute_process(
    COMMAND ${CMAKE_COMMAND} path/to/test/project
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TestProject
    )

    add_test(
    NAME StaticAsserts
    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/TestProject
    COMMAND ${CMAKE_COMMAND} --build .
    )
    # ...

    当然,测试命令实际上可以是一个运行 cmake --build 的包装脚本。在内部并处理其输出。

    作为替代方案,您也可以将嵌套项目的配置移动到测试中,也许使用 CTest 来驱动配置和构建。

    关于c++11 - 如何使用 cmake 测试我的库中的 static_assert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692820/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com