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[2]: ***
>
>
> 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
> on.
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
"keys.at(i)"
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.