auto foo = ref new Foo();什么是"ref"?
auto foo = ref new Foo(); What is "ref"?
我正在看一个来自//build/的视频,几个微软开发人员在他们的c++ 11程序中使用这样的语法:
auto foo = ref new Foo();
我明白这行除了"ref"之外的所有内容。这是什么意思?
即将发布的Visual c++编译器为处理WinRT对象添加了这种语法(WinRT对象是下一代COM,我们现在经历了什么?COM, DCOM, COM+, ActiveX,…)
这一行几乎相当于:
com_ptr_t<Foo> foo = CreateInstance<Foo>();
但是也有一个新版本的com_ptr_t
,使用语法Foo^
。
"ref new"是一个2个token的关键字。它指示编译器实例化一个windows运行时对象,并自动管理该对象的生命周期(通过"^"操作符)。
实例化windows运行时对象会导致分配,但它不一定要在堆上。
ref在这里代表引用计数。使用ref的WinRT组件的类具有开箱即用的引用计数机制
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 对RValue对象调用的LValue ref限定成员函数
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 使用 const char* 初始化 const ref 字符串成员时幕后会发生什么
- "Ref* pSender"在回拨功能中做什么?
- bind(<void>ref(acc), _1) 是什么意思?
- std::tie 和 std::make_tuple 带有 std::ref 参数有什么区别
- 什么是 std::ref 在这个函数中有用
- Eigen::Ref<> 与 std::reference_wrapper<> 的优缺点是什么?
- Ref限定成员函数的目的是什么
- 从本机C++类的实例回调到C++/CX ref类的最佳方法是什么
- 拥有ref类型的类成员的目的是什么?
- 'REF'在glibc vfprintf.c中是什么意思?
- 我不小心没有使用std::ref——结果代码做了什么?
- auto foo = ref new Foo();什么是"ref"?
- 对于"std::ref"来说,"Hello, World!"的例子是什么?