C++11 指针别名-在C++;0x

C++11 指针别名-在C++;0x,c++11,C++11,我正在考虑(作为一个想法)C++0x中不连贯的指针别名。我在考虑是否可以像const correction一样实现它——也就是说,由编译器强制实现。对这样的事情有什么要求?由于这更多的是一个思想实验,我非常乐意看到一些解决方案,这些解决方案会破坏遗留代码或重新定义一半的语言,诸如此类 我真正不想做的是,比如说,从C99开始限制,程序员只是承诺。它应该得到执行 我想让unique_ptr不是图书馆的一部分,而是语言的一部分。这样,编译器可以对它进行特殊优化,如果需要的话,可以编写自己的指针类。 <

我正在考虑(作为一个想法)C++0x中不连贯的指针别名。我在考虑是否可以像const correction一样实现它——也就是说,由编译器强制实现。对这样的事情有什么要求?由于这更多的是一个思想实验,我非常乐意看到一些解决方案,这些解决方案会破坏遗留代码或重新定义一半的语言,诸如此类

我真正不想做的是,比如说,从C99开始限制,程序员只是承诺。它应该得到执行

我想让unique_ptr不是图书馆的一部分,而是语言的一部分。这样,编译器可以对它进行特殊优化,如果需要的话,可以编写自己的指针类。

< P>标准C++库(包括<代码> STD::UnQuyJPt)是语言的一部分。 此外,一致性程序不允许向命名空间
std
添加声明和定义

看到
std::unique_ptr
的实例化后,编译器知道该实例化行为的所有信息-正是作为语言实现的一部分实现的行为,编译器本身就是语言实现的一部分,编译器可以自由执行“特殊优化”来自C++标准的保证。< /P>
作为一个来自同一思路的例子,GCC已经在托管模式下使用许多标准C99函数实现了这一点——它可以用内联insn序列或对其他函数的调用替换标准函数调用——这正是因为GCC只知道函数名就知道确切的语义。

我很高兴库中实现了唯一/共享指针,但是,他们也有一种想法,认为它们是语言的一部分。除了你对优化可能性的观察之外,我真的希望看到智能指针可以用作协变返回类型,就像真实指针一样。好问题。我认为这需要调用什么,所以在没有C++的巨大整体的情况下是不可能做到的(注意我所提到的依赖类型不是模板中的,而是来自计算机科学的)。建议:添加代码示例,就好像已经存在的特性一样;