pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

最令人頭疼的解析混亂

Most vexing parse confusion(最令人頭疼的解析混亂)
本文介紹了最令人頭疼的解析混亂的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在學習 C++11,我偶然發現了統一初始化程序.

I'm studying C++11 and I stumbled upon uniform initializers.

我不明白以下應該顯示最令人煩惱的解析"歧義的代碼:

I don't understand the following code which should show the "most vexing parse" ambiguity:

#include<iostream>


class Timer
{
public:
  Timer() {}
};

int main() 
{

  auto dv = Timer(); // What is Timer() ? And what type is dv?

  int time_keeper(Timer()); // This is a function right? And why isn't the argument " Timer (*) ()" ?



  return 0;
}

推薦答案

這里:

auto dv = Timer();

您有一個名為 dvTimer 類型的對象,它正在從臨時對象(= 右側的表達式)復制初始化代碼> 符號).

You have an object of type Timer called dv that is being copy-initialized from a temporary (the expression on the right side of the = sign).

當使用 auto 聲明一個變量時,該變量的類型與初始化它的表達式的類型相同——這里不考慮 cv 限定符和引用.

When using auto to declare a variable, the type of that variable is the same as the type of the expression that initializes it - not considering cv-qualifiers and references here.

在您的情況下,初始化 dv 的表達式的類型為 Timer,因此 dv 的類型為 Timer.

In your case, the expression that initializes dv has type Timer, and so dv has type Timer.

這里:

int time_keeper(Timer());

您聲明了一個名為 time_keeper 的函數,它返回一個 int 并將指針作為它的輸入,該函數返回一個 定時器,不帶參數.

You declare a function called time_keeper that returns an int and takes as its input a pointer to a function which returns a Timer and takes no argument.

為什么不是參數 Timer (*) () ?

當作為參數傳遞時,函數衰減為指針,所以time_keeper的類型實際上是int(Timer(*)()).

Functions decay to pointers when passed as an argument, so the type of time_keeper is actually int(Timer(*)()).

為了說服自己,你可以嘗試編譯這個小程序:

To convince yourself, you could try compiling this little program:

#include <type_traits>

struct Timer { };
int main()
{
    int time_keeper(Timer());
    static_assert(
        std::is_same<
            decltype(time_keeper), 
            int(Timer(*)())
        >::value, 
        "This should not fire!");
}

這里有一個referar">noliver>>.

Here is a live example.

這篇關于最令人頭疼的解析混亂的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 山东钢格板|栅格板生产厂家供应商-日照森亿钢格板有限公司 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 爆破器材运输车|烟花爆竹运输车|1-9类危险品厢式运输车|湖北江南专用特种汽车有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 并离网逆变器_高频UPS电源定制_户用储能光伏逆变器厂家-深圳市索克新能源 | 半容积式换热器_北京浮动盘管换热器厂家|北京亿丰上达 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 中药二氧化硫测定仪,食品二氧化硫测定仪|俊腾百科 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 365文案网_全网创意文案句子素材站 | 首页-恒温恒湿试验箱_恒温恒湿箱_高低温试验箱_高低温交变湿热试验箱_苏州正合 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 沟盖板_复合沟盖板厂_电力盖板_树脂雨水篦子-淄博拜斯特 | 元拓建材集团官方网站| 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 |