9 template <
typename Base,
typename Derived>
11 -> std::vector<std::shared_ptr<Derived>>
20 std::vector<std::shared_ptr<Derived>> ret;
25 std::back_inserter(ret),
26 [](
const std::shared_ptr<Base>& ptr) -> std::shared_ptr<Derived> {
27 return std::dynamic_pointer_cast<Derived>(ptr);
30 ret.erase(std::remove(ret.begin(), ret.end(), std::shared_ptr<Derived>{}), ret.end());
std::vector< Tuple > edges(const Mesh &m, const Simplex &simplex)
auto filter_pointers_to_derived(const std::vector< std::shared_ptr< Base >> &edges) -> std::vector< std::shared_ptr< Derived >>