小编Mat*_*ara的帖子

sizeof(variableName or expression) 和 sizeof(decltype(variableName or expression)) 一样吗?

给定 c++ 关键字 decltype 并用代码示例进行说明:

int main(){
    int variableName = 0;
    sizeof(variableName) == sizeof(decltype(variableName));//Always true for all types? And for all expressions?
    //
    //
    double variableDoubleName = 0;
    sizeof(variableName+variableDoubleName) == sizeof(decltype(variableName+variableDoubleName));//further example of an expression.
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,一般来说, sizeof(non-type) 和 sizeof(decltype(non-type)) 总是严格相等的吗?如果不是,它们会有什么不同?

c++ types

12
推荐指数
1
解决办法
154
查看次数

非类型指针和引用模板参数以及它们在编译时如何/为什么被解析。C++

我只是问为什么当我传统上希望在运行时分配和使用内存时,为什么允许通过非类型模板传递对象/原语的内存位置。我知道传递其内存的变量必须具有外部链接,但鉴于此,这是否意味着外部链接变量的内存位置始终不变?为了显示:

template<std::string *temp>
void f();
Run Code Online (Sandbox Code Playgroud)

每次执行程序时,通过模板传递的内存位置会不会有所不同,因此不会像我认为非类型参数所需的模板那样是编译时常量?

c++ linker templates

8
推荐指数
1
解决办法
43
查看次数

Visual Studio 2019 中缺少 std::aligned_alloc() 吗?

尽管我确实尝试分别启用 std:c++latest 和 c++17,但我无法使用 c++17 中添加的 std::aligned_alloc() 函数。这是真实生活吗?Visual Studio 2019 是否完全没有在标准中实现像这样的一项古老功能(也是一个非常重要的功能)?其他人可以确认吗?

我指的功能:

https://en.cppreference.com/w/cpp/memory/c/aligned_alloc

visual-studio c++17

8
推荐指数
1
解决办法
3119
查看次数

C++中的属性及其使用

我发现的最新 C++ 功能(也很现代)是属性。它们对于向编译器发出信号似乎非常有用,但除此之外,属性还有哪些其他更具体的用途?如何创建和使用自定义属性以及使用 C++ 属性背后的主要思想是什么?如果主题太宽泛,我对带有函数的属性特别感兴趣。我所说的属性是指:https ://en.cppreference.com/w/cpp/language/attributes

c++ attributes

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

函数内的 c++ using 语句,后跟函数名称(对于 ADL?)

什么是复制和交换习语? 在这个问题中,在最重要的答案中,在实现交换公共朋友重载的部分中,实现使用了这个:

friend void swap(dumb_array& first, dumb_array& second){
    //the line of code below
    using std::swap;
    //then it calls the std::swap function on data members of the dumb_array`s
}
Run Code Online (Sandbox Code Playgroud)

我的问题如下:using std::swap这里的用途是什么(答案提到了与启用 ADL 相关的内容);此处特别调用了“使用”的什么用例,添加该行代码的效果和不添加该代码行的效果是什么?

c++ swap

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

处理小于 cpu 数据总线的数据类型。(c++ 转换成机器代码。)

在以下答案中:https : //softwareengineering.stackexchange.com/a/363379/370129

CPU 访问内存的方式解释得很清楚。假设我们创建了一个小于 CPU 数据总线的数据类型——as 是一个 c++ char;如何将 CPU 读取的数据总线大小的内存块修改为在寄存器中用作预期类型?指定的字节是否已移位,以便它占用寄存器中的最低有效字节(如果它已经不存在)?那么多余的(根据类型大小)最高有效字节是否设置为 0?

然后 CPU 是否可以将一个/多个修改的单个字节写入一个/多个内存地址,或者是否必须将整个总线大小的块写入/被占用的总线大小的内存插槽?使用的字节数?

c++ ram assembly

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

标签 统计

c++ ×5

assembly ×1

attributes ×1

c++17 ×1

linker ×1

ram ×1

swap ×1

templates ×1

types ×1

visual-studio ×1