无法使用模板化类型编译 va_arg() 调用,因为模板参数中的逗号

Can't compile va_arg() call using templated type because of comma in template parameters

本文关键字:因为 调用 参数 类型 va 编译 arg      更新时间:2023-10-16

这一行:

minimum= va_arg(arguments, Vector<T, dimension_count>);

不会编译,因为逗号会让编译器认为有三个参数而不是两个。这是几个月前我第一次写这篇文章时想到的。我的解决方法是简单地将模板类型放在一组括号内。这在Visual Studio的编译器中一直有效,直到今天,当我切换到g++时,它拒绝编译,因为它

" '('令牌前的预期类型说明符"。

所以看起来我做了也好,不做也罢。非常感谢你的帮助。

使用typedef将Vector类型转换为更简单的名称,其中没有逗号