gpt4 book ai didi

c++ - visual studio 2012 c++ 中的错误 2146

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:34 24 4
gpt4 key购买 nike

我之前使用的是旧版本的 visual studio,现在我切换到 visual studio 2012,但我的代码出现错误。它说:

error C2146: syntax error : missing ')' before identifier 'r'

我该如何修复它...我一直在寻找解决方案很长时间了。错误在代码的第一行……

template <class T1, class T2> inline void va_copy(T1& r, const T2& v) 
{
r[0] = v[0];
r[1] = v[1];
r[2] = v[2];
}

最佳答案

va_copy 是在 stdarg.h 中定义的宏,这就是您收到该错误的原因。您可以通过在函数名称中添加一对括号 () 来防止预处理器扩展宏

#include <iostream>
#include <stdarg.h>

template <class T1, class T2> inline void (va_copy)(T1& r, const T2& v)
{
r[0] = v[0];
r[1] = v[1];
r[2] = v[2];
}

int main() {
int a[] = { 32, 33, 34 };
const int b[] = { 22, 23, 24 };
(va_copy)(a, b);
}

关于c++ - visual studio 2012 c++ 中的错误 2146,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650213/

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