相关疑难解决方法(0)

什么是严格别名规则?

当询问C中常见的未定义行为时,灵魂比我提到的严格别名规则更加开明.
他们在说什么?

c strict-aliasing undefined-behavior type-punning

778
推荐指数
10
解决办法
19万
查看次数

C++ 11是否添加了C99限制说明符?如果没有,为什么不呢?

restrict是一个C99功能,它最近得到了很多关注,允许编译器对指针执行"以前只有fortran"的优化.这也是微软最近宣布的与C++ AMP规范基础相同的关键词.

该关键字实际上是在FCD中吗?如果没有,是否有特定原因被省略?

c++ c++11 c++-amp

30
推荐指数
4
解决办法
6895
查看次数

如何在C++中实现私有变量的访问?

编译器如何控制内存中变量的保护?是否有与内存中的私有变量相关联的标记位?它是如何工作的?

c++ memory-management data-protection private-members

13
推荐指数
1
解决办法
1478
查看次数

C89或C++ 03是否定义了严格的别名规则?

我已经看到几个断言,C89和C++ 03定义了严格的别名规则.但是,我无法在标准中找到该特定位.我的理解是在C99中添加了严格的别名规则.

c c++

5
推荐指数
3
解决办法
351
查看次数

使用仿函数提供函数或操作符作为C++模板参数的性能损失?

我有一系列复杂的函数执行非常相似的任务,除了函数中间的一个操作符.我的代码的简化版本可能是这样的:

#include <assert.h>

static void memopXor(char * buffer1, char * buffer2, char * res, unsigned n){
    for (unsigned x = 0 ; x < n ; x++){
        res[x] = buffer1[x] ^ buffer2[x];
    }
};

static void memopPlus(char * buffer1, char * buffer2, char * res, unsigned n){
    for (unsigned x = 0 ; x < n ; x++){
        res[x] = buffer1[x] + buffer2[x];
    }
};

static void memopMul(char * buffer1, char * buffer2, char * res, unsigned n){
    for (unsigned …
Run Code Online (Sandbox Code Playgroud)

c++ templates

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