gpt4 book ai didi

c++11 - 指针别名-在C++ 0x中

转载 作者:行者123 更新时间:2023-12-02 04:12:01 25 4
gpt4 key购买 nike

我正在考虑(只是一个想法)C++ 0x中的脱节指针别名。我在考虑是否可以与const正确性类似地实现它,即由编译器执行。这样的事情有什么要求?由于这更多是一种思想实验,因此我非常高兴看到破坏旧代码或重新定义一半语言和此类内容的解决方案。

我真正不愿意做的是,例如,从C99那里获得restrict,程序员只是 promise 这样做。应该强制执行。

我在考虑让unique_ptr不在库的一部分,而是语言的一部分。这样,编译器可以对其进行特殊的优化,并在需要时编写自己的唯一指针类。

最佳答案

标准C++库(包括std::unique_ptr)是该语言的一部分。

另外,不允许符合标准的程序向 namespace std添加声明和定义。

看到std::unique_ptr<T>的实例化后,编译器就知道了有关该实例化行为的所有信息-正是作为语言实现的一部分而实现的行为,编译器本身就是该行为的一部分,并且编译器可以自由地执行“特殊优化”来自C++标准的保证。

例如,出于相同思路的一个例子,GCC已经在托管模式下使用了许多标准C99函数来做到这一点-可以用内联insn序列或对其他函数的调用来代替标准函数的调用-正是因为GCC知道只需知道函数名称即可获得精确的语义。

关于c++11 - 指针别名-在C++ 0x中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4574570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com