Anders Logg wrote:
> On Tue, Sep 29, 2009 at 01:01:35PM +0100, Garth N. Wells wrote:
>>
>> Anders Logg wrote:
>>> On Tue, Sep 29, 2009 at 12:42:54PM +0100, Garth N. Wells wrote:
>>>> Anders Logg wrote:
>>>>> On Tue, Sep 29, 2009 at 07:39:01AM +0100, Garth N. Wells wrote:
>>>>>> Is there a reason why the MeshFunction.get(..) functions return by value
>>>>>> rather then reference, e.g. it is currently
>>>>>>
>>>>>>      inline T get(const MeshEntity& entity) const
>>>>>>
>>>>>> rather than
>>>>>>
>>>>>>      inline T& get(const MeshEntity& entity) const
>>>>>>
>>>>>> Garth
>>>>> Yes, we have a set() function for setting the values.
>>>>>
>>>> I know, but I would like to get a reference rather than copying data
>>>>
>>>>     unsigned int index = 3;
>>>>     const std::vector<double>& vec =  mesh_function.get(index)
>>>>
>>>> I can do this when I have the MeshEntitiy, but not when using the index.
>>> Does it work if you do
>>>
>>>   &vec[0] = mesh_function.values();
>>>
>> Probably, bit it's not what I want. I have a std::vector attached to
>> mesh entities (MeshFunction<std::vector<double> >). I want a reference
>> to the std::vector attached to a particular entity
>>
>>    std::vector<double> vec& =  mesh_function(my_entity);
>>
>> is fine, but
>>
>>    std::vector<double> vec& =  mesh_function.get(my_index);
>>
>> is not.
> 
> What if you just add operator[] for uint?
> 
>> Back to my question: Is there a reason why MeshFunction::get returns by
>> value and not by reference?
> 
> There might be a reason. I think we introduced get/set for use in the
> Python interface. Perhaps Johan remembers?
>

OK, that's what I want to know.

Garth

> --
> Anders
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> DOLFIN-dev mailing list
> [email protected]
> http://www.fenics.org/mailman/listinfo/dolfin-dev


_______________________________________________
DOLFIN-dev mailing list
[email protected]
http://www.fenics.org/mailman/listinfo/dolfin-dev

Reply via email to