A simple but less elegant solution would be to pack two contiguous arrays - one 
of the string lengths in an integer vector and another of all the strings 
concatenated into a vector<char> and broadcast both. Of course you could hide 
all this cruft inside a broadcast(vector<string>) specialization, which does 
the packing and unpacking. 

-Ben



On Oct 29, 2012, at 5:41 PM, "Roy Stogner" <royst...@ices.utexas.edu> wrote:

> 
> On Mon, 29 Oct 2012, Derek Gaston wrote:
> 
>> Is there a way to broadcast a vector of strings?
> 
> Easily?  Not currently.
> 
>> /Users/gastdr/projects/libmesh/include/libmesh/parallel.h:285: error: 
>> ‘libMesh::Parallel::StandardType<T>::StandardType(const T*) [with T =
>> std::basic_string<char, std::char_traits<char>, std::allocator<char> >]’ is 
>> private
>> /Users/gastdr/projects/libmesh/include/libmesh/parallel.h:3696: error: 
>> within this context
>> 
>> Which obviously means that this is a datatype that no one has worked with 
>> yet.
>> 
>> So... any ideas?  Should I go ahead and implement a datatype for this... or 
>> is there a better way?
> 
> I'm afraid implementing a datatype won't work - that's a mechanism for
> constant-size objects.
> 
> For sending variable-size objects our best idiom right now is the
> "packed_range" code.  See "parallel_node.h" or "parallel_elem.h" for
> examples, which (fortunately or unfortunately depending on your point
> of view) are much much more complicated than the corresponding code
> for std::basic_string<T> would need to be.
> 
> I'm working on refactoring parallel.h right now, actually.  Could you
> keep a "parallel_string.h" separate the way the node/elem packing is?
> ---
> Roy
> ------------------------------------------------------------------------------
> The Windows 8 Center - In partnership with Sourceforge
> Your idea - your app - 30 days.
> Get started!
> http://windows8center.sourceforge.net/
> what-html-developers-need-to-know-about-coding-windows-8-metro-style-apps/
> _______________________________________________
> Libmesh-devel mailing list
> Libmesh-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libmesh-devel
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to