c++ - 使用类的特定模板特化时的编译器警告

标签 c++

<分区>

当我提供的库的客户端使用我们不希望的模板类的特定特化时,是否有任何合理且可移植的方式在 C++ 中生成编译器警告?

与这个被标记为重复的问题相比,我只需要警告,而不是编译时错误。

最佳答案

我可以重用 Does there exist a static_warning? 中的 STATIC_WARNING_TEMPLATE建议结合 boost::is_same 在使用特定模板参数时生成警告:

template<class T, class DisableWarning = void>
class Foo {
public:
    STATIC_WARNING_TEMPLATE(FOO_WARNING,
            (boost::is_same<DisableWarning, DislikedType>::value || !boost::is_same<T, DislikedType>::value),
            "A warning")

使用此解决方案,用户可以在将 DisableWarning 定义为 DislikedType 时禁用警告。

关于c++ - 使用类的特定模板特化时的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21862103/

相关文章:

linux 和 gcc 4 中的 C++ 新运算符线程安全

c++ - 在 C 中捕获 & 和 && 误用的技巧?

c++ - 使用 GNU 科学图书馆寻找矩阵的内核

c++ - C++ 中的 Sscanf(读入值并同时赋值)

c++ - C 和 C++ 代码之间的不兼容

c++ - 我的 C++ 编译器会优化我的代码吗?

c++ - 如何使用 Qt QwtPlot3D 可视化数据

c++ - 如何在状态栏中显示 CMFCRibbonButton 的工具提示?

c++ - DirectX 11 : how to define input layout when using more than one vertex buffer?

c++ - 复制省略可以在 synchronize-with 语句中发生吗?