On Wed, 2013-10-16 at 17:09 +0600, Ildar Mulyukov wrote:
15.10.2013 20:36, Patrick Ohly пишет:
> On Tue, 2013-10-15 at 19:59 +0600, Ildar Mulyukov wrote:
>> /usr/include/boost/smart_ptr/shared_ptr.hpp:663:22: error:
>> return-statement with a value, in function returning
>> 'void' [-fpermissive]
>> make: ***
> Can you attach that copy of /usr/include/boost/smart_ptr/shared_ptr.hpp?
> I'm not seeing that error on any of the distros I compile SyncEvolution
Yes, it is here: http://packages.altlinux.org/en/Sisyphus/srpms/boost/get
file boost-devel-headers-1.53.0-alt3.noarch.rpm is of your interest.
Thanks for answering!
Looks like that version of boost and/or the compile has problems with
boost::shared_ptr<gchar *>: the "void" in "with T = char*;
typename boost::detail::sp_array_access<T>::type = void" is wrong, it
should be "char *".
Can you try working around this by replacing "keys[i]" with
in the surrounding code of EvolutionSyncSource.cpp?
I must have had problems like that myself when writing the code, because
the commit message for PlainGStrArray says:
glib: smart pointer for glib string arrays
Automatically calls g_strfreev(). Accessing entries in the array must
be done with at(), overloading the  operator led to a "operator
ambiguous" warning from gcc on Debian Stable in x86.
But I did not document why overloading was necessary and don't remember
or see that now. EvolutionSyncSource.cpp ended up using the  operator
in that one line you are stumbling over now and not the others, which is
a bit puzzling.
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.