作者zerodevil (冰心無情)
看板C_and_CPP
標題[問題] boost::lambda的問題
時間Mon Jun 8 06:52:11 2009
最近在試用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
1F:→ yauhh:整數加超長整數,它不知道要回應給你哪個型態,所以你要告訴它 06/08 08:56
2F:→ yauhh:ret<long long int> (_1 + 1LL) (1); 06/08 08:56
3F:→ zerodevil:感謝!! 可以用了 06/08 14:06
4F:→ zerodevil:但是為什麼 (_1 + 1LL)(1LL); 這樣也不行? 06/08 14:07
5F:→ yauhh:它的錯誤訊息,會不會主要是指,對long long int的轉型還沒有 06/08 14:51
6F:→ yauhh:相關函數做自動轉換? 跳進去想底層的道理真的好累 06/08 14:52