On Mon, 18 Aug 2014, John Peterson wrote:
>> Point p(init.comm().rank()); >> std::vector<Point> input(1, p); >> std::vector<Point> output; >> init.comm().allgather_packed_range(???, input.begin(), input.end(), >> std::back_inserter(output)); > > At the least one would probably need to implement Parallel::pack() and > Parallel::packable_size() for Point? That's the missing bit for adding new packable classes, yeah - and then the context argument that your pack/unpack functions accept should be the same type of context argument (???) that your packed_range calls supplies. If you've got a class that doesn't need to dip into "third party data" for serialization then the context argument isn't necessary.. but something would still have to exist to let the compiler figure out how to match the calling syntax, even if it was just void* in the pack/unpack specializations and "(void*)(0)" (would NULL work?) in the call. --- Roy ------------------------------------------------------------------------------ _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel