我刚刚在folly/ManualExecutor.h
ä¸çœ‹åˆ°äº†è¿™ä¸ªé»‘é”法TimePoint now_ = now_.min();
在我查看整个库æºä»£ç 之åŽï¼Œæˆ‘还没有看到å˜é‡now_
的定义。这里å‘生了什么?这实际上是æŸç§é€’å½’å˜é‡å£°æ˜Žå—?
ç”案 0 :(得分:62)
该代ç 很å¯èƒ½ä¸Žæ¤ç›¸åŒï¼š
TimePoint now_ = TimePoint::min();
è¿™æ„味ç€ï¼Œmin()
是一个é™æ€æ–¹æ³•ï¼Œä½¿ç”¨å®žä¾‹è°ƒç”¨å®ƒä¸Žè°ƒç”¨å®ƒä¸€æ ·ï¼Œè¯¥å®žä¾‹ä»…用于确定类型。没有涉åŠé»‘é”法,这åªæ˜¯åšåŒæ ·äº‹æƒ…的两ç§è¯æ³•ã€‚
至于为什么有问题的代ç 编译:{{1​​}}å·²ç»åœ¨è¡Œçš„左侧声明,所以当它用于å³ä¾§çš„åˆå§‹åŒ–时,编译器已ç»çŸ¥é“它的类型并且能够调用é™æ€æ–¹æ³•ã€‚å°è¯•è°ƒç”¨éžé™æ€æ–¹æ³•åº”该会出错(请å‚阅下é¢@BenVoigt的评论)。
æ£å¦‚您必须撰写æ¤é—®é¢˜æ‰€è¯æ˜Žçš„é‚£æ ·ï¼Œé—®é¢˜ä¸çš„è¯æ³•å¹¶ä¸æ˜¯æœ€æ˜Žç¡®çš„。如果类型å称为long,则å¯èƒ½å¾ˆè¯±äººï¼Œå¹¶ä¸”在使用åˆå§‹åŒ–程åºï¼ˆé—®é¢˜ä»£ç 为)的æˆå‘˜å˜é‡å£°æ˜Žä¸å¯èƒ½æ˜¯åˆç†çš„。在函数内部的代ç ä¸ï¼Œnow_
是å‡å°‘é‡å¤çš„更好方法。
ç”案 1 :(得分:14)
æ·±å…¥ç ”ç©¶ä»£ç 显示TimePoint是chrono :: steady_clock :: time_point的别å,其ä¸min()确实是一个返回最å°å…许æŒç»æ—¶é—´çš„é™æ€æ–¹æ³•ï¼š