C++中可以使用引用传值的方法从一次函数调用中获得多个结果值。也可以使用std::tuple
来像python或Lua中那样一次性返回多个值,以下是一个例子。
函数声明
函数传入一个点的值,返回以该点为中心的四个位置坐标是否可以放置:
1
| std::tuple<bool, bool, bool, bool> checkPointCanPlace(const Point& centerPt);
|
函数实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
std::tuple<bool, bool, bool, bool> checkPointCanPlace(const Point& centerPt) { bool ret0 = false; bool ret1 = false; bool ret2 = false; bool ret3 = false; return std::make_tuple(ret0,ret1,ret2,ret3); }
|
函数调用
从返回的tuple
中获取实际需要的各个值。
1 2 3 4 5 6 7 8 9 10
|
auto tp = checkPointCanPlace(centerPt); bool empty[4]; empty[0] = std::get<0>(tp); empty[1] = std::get<1>(tp); empty[2] = std::get<2>(tp); empty[3] = std::get<3>(tp);
|
REFERENCE
http://www.cplusplus.com/reference/tuple/