c++ - 使用assert(f<char, int>()) 编译错误

标签 c++

#include <cassert>

template<class A, class B>
bool f()
{
    return true;
}

int main()
{
    assert(f<char, int>());
}

给出编译错误:错误:宏“assert”传递了 2 个参数,但只需要 1

导致该错误的原因是什么?是否有解决方法?

实时代码:

http://ideone.com/4XbGVI

最佳答案

添加额外的括号:

assert((f<char, int>()));

Live Demo

关于c++ - 使用assert(f<char, int>()) 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931366/

相关文章:

c++ - C++中的非虚函数与虚函数调用效率

c++ - 如何将 int 的数字分配给数组 c++

c++ - 原子 bool 无法保护非原子计数器

c# - 当 C++ 调用 C# 函数时,如何从 C# 调用 C++ 委托(delegate)函数?

c++ - 如何让编译器在没有 C++11 的情况下手动检查数据类型

c++ - 无法识别 GMock 宏? YCM 给我错误,但 Bazel 构建良好

c++ - png block 的 CRC32 计算与真实 block 不匹配

c++ - 如何将流cin加载到 vector 中

c++ - 停止函数隐式转换

c++ - 正确别名 vector