小编Hyu*_*won的帖子

何时发生隐式模板实例化?

我想知道在以下情况下何时/何处发生隐式模板实例化.

// temp.h
template <typename T>
struct A {
    T value;
}
Run Code Online (Sandbox Code Playgroud)
// foo.h
#include "temp.h"
void foo();
Run Code Online (Sandbox Code Playgroud)
// foo.cpp
#include "foo.h"
void foo() { A<int> _foo; }
Run Code Online (Sandbox Code Playgroud)
// bar.h
#include "temp.h"
void bar();
Run Code Online (Sandbox Code Playgroud)
// bar.cpp
#include "bar.h"
void bar() { A<int> _bar; }
Run Code Online (Sandbox Code Playgroud)
// main.cpp
#include "foo.h"
#include "bar.h"
int main() { foo(); bar(); return 0; }
Run Code Online (Sandbox Code Playgroud)

我认为它是在foo()被调用时发生的,因为它是第一次使用A<int>,因此A<int>实现于foo.o.
并且,当bar()被调用时,它与A<int>at 相关联foo.o.

我对吗?或实例化发生两次?

c++

7
推荐指数
1
解决办法
1015
查看次数

为什么django中的.filter()会返回重复的对象?

我已经按照django教程进入了tutorial05.

我试图不像教程所说的那样显示空轮询,所以我添加了这样的过滤条件:

class IndexView(generic.ListView):
    ...
    def get_queryset(self):
        return Question.objects.filter(
            pub_date__lte=timezone.now(),
            choice__isnull=False
        ).order_by('-pub_date')[:5]
Run Code Online (Sandbox Code Playgroud)

但是这返回了两个完全相同的对象.

我认为choice__isnull = False引起了问题,但不确定.

django

6
推荐指数
2
解决办法
2523
查看次数

win32的cufft.lib丢失了

我正在尝试使用cuda进行图像处理.

我需要fft用于低通滤波器,所以我尝试使用cufft,现在我发现在"NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\win32"中没有win32的cufft.lib.

它只存在于x64文件夹中.

我可以只用x64袖口吗?或者我在安装时遗漏了什么?

cuda

5
推荐指数
1
解决办法
1862
查看次数

为什么它会导致运行时错误,字符为int而不进行初始化?

首先,我为英语不好道歉.

在下一个简单的程序,

void fx(int *a){
    for(int i=*a; i<='Z'; i++)
    printf("%c", i);
}
int main(){
    int a;
    scanf("%c", &a);
    fx(&a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在运行时输入了大写字母,它导致了致命错误,并通过杀死进程解决了.

它在下一个代码中不会引起任何问题.

//except fx()
int main(){
    int a;
    scanf("%c", &a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

要么

//initialize int a
void fx(int *a){
    for(int i=*a; i<='Z'; i++)
    printf("%c", i);
}
int main(){
    **int a = 0;**
    scanf("%c", &a);
    fx(&a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道输入字符应该是'char'.但我无法理解上述情况.

发生了什么?

PS.我使用VS2010,c ++

c++

2
推荐指数
1
解决办法
164
查看次数

标签 统计

c++ ×2

cuda ×1

django ×1