小编tmo*_*hou的帖子

为什么g ++和MS Visual Studio C++以不同的方式执行以下代码?

我无法理解哪个编译器在这里有问题(如果有的话).与MS Visual Studio C++相比,以下代码与g ++不同.

#include <iostream>

int main() {

    int a = 10; //some random value

    int* ptr = &a;

    //a temp rvalue of type `const int* const' created in g++
    //no temp created in MS Visual Studio
    const int* const &alias_for_ptr = ptr;

    ptr = 0; //null ptr

    if (ptr == alias_for_ptr)
        //This will execute in MS Visual Studio C++
        //But not in g++
        std::cout << "ptr == alias_for_ptr" << std::endl;
    else
        //This will execute in g++
        //But …
Run Code Online (Sandbox Code Playgroud)

c++ alias reference const-correctness

9
推荐指数
1
解决办法
532
查看次数

标签 统计

alias ×1

c++ ×1

const-correctness ×1

reference ×1