c – \u0026\u0026宣告的变量
发布时间:2020-12-16 02:58:55 所属栏目:百科 来源:网络整理
导读:考虑(x | r | l | pr | gl)的值,我想到了以下问题: 考虑以下两个变量声明: X x = ...; 和 X x = ...; 并假设…不传递x值. 有人会想到代码不使用decltype,这在哪里有所区别?在这两种情况下,(x)将以类型X的左值为单位,不会吗? 解决方法 模板非类型参数 can
考虑(x | r | l | pr | gl)的值,我想到了以下问题:
考虑以下两个变量声明: X x = ...; 和 X&& x = ...; 并假设…不传递x值. 有人会想到代码不使用decltype,这在哪里有所区别?在这两种情况下,(x)将以类型X的左值为单位,不会吗? 解决方法
模板非类型参数
cannot refer to a temporary.因此,给出
struct X {}; X purr() { return {}; } X x1 = purr(); X&& x2 = purr(); template<X&> class woof {}; 我们有 woof<x1> w1; // OK woof<x2> w2; // Error 如果…不限于类型X的prvalue,则切片是使两个非等效的较不模糊的方式.鉴于: struct X { virtual ~X() = default; }; struct Y : X {}; Y meow() { return {}; } 然后: X x1 = meow(); // slices X&& x2 = meow(); // doesn't slice 从而: dynamic_cast<Y&>(x1); // throws std::bad_cast dynamic_cast<Y&>(x2); // OK (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |