小编aCu*_*ria的帖子

编译如何选择调用哪个模板函数?

关于下面的代码,编译器如何选择调用哪个模板函数?如果省略const T&function,则始终调用T&函数.如果省略T&​​函数,则始终调用const T&函数.如果两者都包括在内,结果如下.

#include <iostream>
#include <typeinfo>

template <typename T>
void function(const T &t)
{
    std::cout << "function<" << typeid(T).name() << ">(const T&) called with t = " << t << std::endl;
}

template <typename T>
void function(T &t)
{
    std::cout << "function<" << typeid(T).name() << ">(T&) called with t = " << t << std::endl;
}

int main()
{
    int i1 = 57;
    const int i2 = -6;

    int *pi1 = &i1;
    int *const pi3 = &i1;
    const int …
Run Code Online (Sandbox Code Playgroud)

c++

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

VS10使用相对路径时,其他库目录失败

当我使用相对路径设置项目时,它会失败.

//不工作属性 - 链接器 - 通用 - 附加库目录

..\..\libraries
Run Code Online (Sandbox Code Playgroud)

// 工作良好

C:\Users\NAME\Desktop\project\libraries
Run Code Online (Sandbox Code Playgroud)

如何获得相对路径?

visual-studio-2010

4
推荐指数
1
解决办法
4272
查看次数

如何使用模板函数和CUDA

所以我有以下代码:

档案:Cuda.cu

template <typename T>
__global__ void xpy( int n, T *x, T *y, T *r )
{
    int i = blockIdx.x * blockDim.x + threadIdx.x;
    if (i < n) r[i] = x[i] + y[i];
}

mtx_mtx_add( float *a1, float *a2, float *r, const int &numElements )
{
// snip
xpy<<<numBlocks, blockSize>>>(numElements, a1, a2, r); 
}
mtx_mtx_add( int *a1, int *a2, int *r, const int &numElements ) {:::}
mtx_mtx_add( long long *a1, long long *a2, long long *r, const int …
Run Code Online (Sandbox Code Playgroud)

c++ cuda

4
推荐指数
1
解决办法
6242
查看次数

C# 三元运算符调用函数

为什么此代码无效?很确定它在 C /C++ 中是合法的

伪代码:

String s = Console.ReadLine();
int x = 0;
Int32.TryParse(s, out x) ? Console.WriteLine("Foo") :  Console.WriteLine("bar");
Run Code Online (Sandbox Code Playgroud)

c# ternary-operator

4
推荐指数
1
解决办法
2453
查看次数

双线性插值,我的实现有问题

我正在尝试实现双线性插值函数,但由于某种原因我得到了糟糕的输出.我似乎无法弄清楚什么是错的,任何帮助走上正轨都将受到赞赏.

double lerp(double c1, double c2, double v1, double v2, double x)
{
if( (v1==v2) ) return c1;
double inc = ((c2-c1)/(v2 - v1)) * (x - v1);
double val = c1 + inc;
return val;
};

void bilinearInterpolate(int width, int height)
{
// if the current size is the same, do nothing
if(width == GetWidth() && height == GetHeight())
    return;

//Create a new image
std::unique_ptr<Image2D> image(new Image2D(width, height));

// x and y ratios
double rx = (double)(GetWidth()) / (double)(image->GetWidth()); …
Run Code Online (Sandbox Code Playgroud)

c++

3
推荐指数
1
解决办法
3438
查看次数

为什么C#中需要"新"关键字

假设我有一个函数foo,它将vector类作为输入:

void Foo( Vector3 vector );
Run Code Online (Sandbox Code Playgroud)

如果我想调用此函数:

Foo( new Vector3(1, 2, 3) );
Run Code Online (Sandbox Code Playgroud)

为什么新关键字必不可少(在C#中)?

在其他语言中,例如:C++,在这种情况下不需要使用new .这似乎是多余的

编辑1:@prander以下是完全有效的C++

Foo ( Vector3(1, 2, 3) );
Run Code Online (Sandbox Code Playgroud)

将在堆栈上创建Vector3对象,不需要new/calloc/malloc.

c# keyword

3
推荐指数
1
解决办法
1000
查看次数

什么时候应该使用SecureZeroMemory()?

我找到了一些示例代码:

addrinfo hints;
SecureZeroMemory(&hints, sizeof(hints));
Run Code Online (Sandbox Code Playgroud)

有没有理由在这里使用SecureZeroMemory()?为什么不呢

addrinfo hints = {0};
Run Code Online (Sandbox Code Playgroud)

示例代码:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms742203(v = vs.85).aspx

c++

3
推荐指数
2
解决办法
1439
查看次数

什么导致Unity内存泄漏?

我在使用以下代码时遇到了 Unity 内存泄漏:

行为:在运行时,Unity 最终使用 > 64GB 的 RAM 并崩溃(这就是这台机器所拥有的)

场景:我的场景中只有一架飞机,代码如下。

我该如何解决?我不认为我想要这里的弱引用(或者至少在 C++ 中我不会在这种情况下使用weak_ptr,也许是unique_ptr)。我只想在对象超出范围时释放内存。

void Start () {
    frameNumber_ = 0;

    // commented code leaks memory even if update() is empty
    //WebCamDevice[] devices = WebCamTexture.devices;
    //deviceName = devices[0].name;
    //wct = new WebCamTexture(deviceName, 1280, 720, 30);
    //GetComponent<Renderer>().material.mainTexture = wct;
    //wct.Play();

    wct = new WebCamTexture(WebCamTexture.devices[0].name, 1280, 720, 30);
    Renderer renderer = GetComponent<Renderer>();
    renderer.material.mainTexture = wct;
    wct.Play();
}

// Update is called once per frame
// This code in update() also leaks memory …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

3
推荐指数
1
解决办法
4844
查看次数

在线组装

对于下面的代码,如果我想将for循环转换为内联汇编,它将如何完成?(原谅奇怪的代码,我刚刚编写了.)

1)这是针对x86,使用visual studio

2)这是一个"如何使用在线组装"的问题,而不是"如何优化此代码"的问题

3)任何其他例子都没问题.我将在abit中考虑一些更好的示例代码.

好的,我希望这是一个更好的例子:

int doSomething(double a, double b, double c)
{
    double d;
    for(int i=100;i<200;i++)
    {
        d = a*a + b*b + c*c;
        if(d>i)
            return (i-99);
    }
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

c++ assembly

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

如何在处理C库对象时实现std :: move()

假设我们有以下代码

class Image
{
public:
    Image(const std::string & path)
    {
        pBitmap_ = FreeImage_Load( imageFormat, pathname.c_str() );
    }
    ~Image()
    {
        FreeImage_Unload(pBitmap_);
    }
private:
    FIBITMAP * pBitmap_;

};
Run Code Online (Sandbox Code Playgroud)

如何实现Image(Image && rhs)?在移动dtor后仍然会调用rhs,这不会产生预期的效果?我想是类似的东西

Image::Image( Image && rhs )
{
    pBitmap_ = std::move(rhs.pBitmap_);
            rhs.pBitmap_ = nullptr;
}
Run Code Online (Sandbox Code Playgroud)

然后检查dtor中的null应该做的伎俩,但有更好的方法吗?

c++ move-semantics c++11

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