typedef boost::variant<int, double> Type;
class Append: public boost::static_visitor<>
{
public:
void operator()(int)
{}
void operator()(double)
{}
};
Type type(1.2);
Visitor visitor;
boost::apply_visitor(visitor, type);
是否有可能改變這種訪問者它接收如下額外的數據:的boost :: static_visitor使用多個參數
class Append: public boost::static_visitor<>
{
public:
void operator()(int, const std::string&)
{}
void operator()(double, const std::string&)
{}
};
追加對象的生命週期過程中,該字符串值的變化。在這種情況下,通過構造函數傳遞字符串不是一個選項。
爲什麼它不是一個選項?如果發生更改,可以使用不同的字符串創建另一個Append對象。 – kennytm
什麼時候字符串值會改變?我不明白爲什麼它不能用構造函數來完成。 – Mene
@KennyTM Append類通過它的構造函數獲取一些依賴關係。如果我在我的類中重建Append對象,那麼這個類也需要通過構造函數獲取Append使用的所有依賴項。我曾希望我的課程通過它的構造函數簡單地接受一個Append對象。 – Baz