Я ищу наилучший способ фильтрации вектора варианта наддува, который был определен, как это:фильтровать вектор форсированного варианта в новый вектор?
boost::variant<T1*, T2, T3> Var;
std::vector<Var> Vec;
, когда я называю этот вектор, то, что является лучшим способом для фильтрации только T2 ограниченного типа и вставки в новый вектор? или другим способом, я хочу что-то вроде этого
std::vector<T2> T2Vec = ...(how to filter it from Vec)....
спасибо!
EDIT: Поскольку использование «посетителя» более надежное, мне также интересно, чтобы кто-нибудь мог дать мне решение, используя «посетителя»?
еще раз спасибо!
Вы можете использовать подобный подход, как juanchopanza изначальном, используя 'станд :: remove_copy_if' и функтор, который возвращает true, когда 'v.which()! = 1'. – llonesmiz
@cv_and_he, к сожалению, мой первоначальный подход ошибочен: нет оператора преобразования от 'Var' до' T2'. Нужен алгоритм 'transform_if', которого не существует. Я вернулся к простой петле. – juanchopanza