On Wed, Jan 06, 2016 at 05:55:42PM +0100, Niemand Sonst wrote:
> emc/rs274ngc/interp_remap.cc:200: error: ‘end’ is not a member of ‘std’

I did verify that, unlike last time, std::end is missing on the Ubuntu
10.04 machine I have access to (so it's not simply a missing header
again):

    $ cat std_end.cc
    #include <iterator>
    const char c[]{1,2,3,4};
    auto p = std::end(c);

    [on ubuntu 10.04]
    $ g++ -std=c++0x std_end.cc && echo success
    std_end.cc:3: error: ‘end’ is not a member of ‘std’
    std_end.cc:3: error: unable to deduce ‘auto’ from ‘<expression error>’

    [on debian wheezy]
    $ g++ -c -std=c++11 std_end.cc && echo success
    success

Use of std::end was introduced at commit e38ff45f16 to fix real (if
minor) technical debt; because the new code is type safe, if the
underlying type of the members missing, optional and so forth change so
that they cannot be initialized by the literal constant 0, it will be a
compiler error.  Before my change, the type of these members did not
matter; they would be initialized to all-bits-zero which is undefined
behavior if they are later changed to some C++ types that are not "plain
old data".

At this point I choose not to make any further efforts to fix master
branch support for Ubuntu 10.04.  If someone else produces patches to do
this, I will do my best to evaluate them impartially, but as I have
explained I view the change as important and would not like to see it
simply reverted.

Jeff

------------------------------------------------------------------------------
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to