一个奇怪的问题~~~~~~

allendragon 2006-08-17 03:33:29
下面是一个模版函数
template <class T, int N>
static inline bool ldltdc(T **A, T *rdiag)
{
T v[N-1];
int xx = N; //here is the problem, why N = N+1????
for (int i = 0; i < N; i++) {
for (int k = 0; k < i; k++)
v[k] = A[i][k] * rdiag[k];
for (int j = i; j < N; j++) {
T sum = A[i][j];
for (int k = 0; k < i; k++)
sum -= v[k] * A[j][k];
if (i == j) {
if (unlikely(sum <= T(0)))
return false;
rdiag[i] = T(1) / sum;
} else {
A[j][i] = sum;
}
}
}

return true;
}

在mfc中调用出现下面的情况:
ldltdc<float,3>(w, diag);
调试的时候模版函数中的N=4而不是N=3。
同样的调用在console程序中没有问题,N=3。

这是为什么啊?
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
genius_hb 2006-08-17
  • 打赏
  • 举报
回复
我这没问题
allendragon 2006-08-17
  • 打赏
  • 举报
回复
再顶~~~~~
allendragon 2006-08-17
  • 打赏
  • 举报
回复
居然没人知道吗,给点提示也好啊!!!!!

64,688

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧