[問題] boost::lambda的問題

看板C_and_CPP (C/C++)作者 (冰心無情)時間16年前 (2009/06/08 06:52), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
最近在試用lambda 碰到一點小問題.. 請問一下最後一行的用法哪裡有錯 @@ (_1 + 1)(1); // OK (_1 + 1.0)(1); // OK (_1 + 1LL)(1); // 一長串error, 最後幾句是 // error: conversion from 'long long int' to non-scalar type // 'boost::lambda::detail::return_type_deduction_failure<略>' // requested boost版本是1.39.0 compiler是gcc4.4, 參數 -O -std=c++0x -pedantic -Wall -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.32

06/08 08:56, , 1F
整數加超長整數,它不知道要回應給你哪個型態,所以你要告訴它
06/08 08:56, 1F

06/08 08:56, , 2F
ret<long long int> (_1 + 1LL) (1);
06/08 08:56, 2F

06/08 14:06, , 3F
感謝!! 可以用了
06/08 14:06, 3F

06/08 14:07, , 4F
但是為什麼 (_1 + 1LL)(1LL); 這樣也不行?
06/08 14:07, 4F

06/08 14:51, , 5F
它的錯誤訊息,會不會主要是指,對long long int的轉型還沒有
06/08 14:51, 5F

06/08 14:52, , 6F
相關函數做自動轉換? 跳進去想底層的道理真的好累
06/08 14:52, 6F
文章代碼(AID): #1AB4ISY4 (C_and_CPP)
文章代碼(AID): #1AB4ISY4 (C_and_CPP)