[英]How to return boost::fusion::vector<x,y,z> elements to add to a std::array<boost::fusion::vector<x,y,z>>?
[英]How to return a location as x,y,z
我怎樣才能使返回的x和y而不只是其中之一? 在Location類中,我保護了名為x_pos
和y_pos
數據。
void Location::getXY(double& x, double& y) const {
x_pos = x;
y_pos = y;
return x, y;
}
您可以返回一個std::pair
。 我假設您想按值而不是此處引用返回。
#include <utility> // for std::pair
// if using c++14, else use std::pair<double,double> as return type
auto Location::getXY(double& x, double& y) const {
x_pos = x;
y_pos = y;
return std::make_pair(x,y);
}
盡管我必須注意,此函數沒有邏輯意義,但是您返回的是傳遞給它們的值,而無需修改它們。
你可能是說
void Location::getXY(double& x, double& y) const {
x = x_pos;
y = y_pos;
}
這樣,您將Location
的內部x_pos
和y_pos
在提供的位置中。 您不需要從返回void
的函數return
任何東西(實際上,除了void
本身,您不能返回任何東西)。 正如大家之前所說,返回一個std::pair
可能是一個更好的主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.