These are chat archives for Snaipe/Criterion

16th
Mar 2016
Dominik
@kaidowei
Mar 16 2016 11:22
@Snaipe we need to use an old compiler (gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2)
Dominik
@kaidowei
Mar 16 2016 11:31
and it works for c, but not c++

we identified

        stdio_sync_filebuf(stdio_sync_filebuf&& other) = default;
        stdio_sync_filebuf& operator=(stdio_sync_filebuf&& other) = default;

to be the problem. when commented out, our cpp tests compile

are those really important?
can we guard them with # if __cplusplus > 199711L?
Franklin Mathieu
@Snaipe
Mar 16 2016 12:19
@kaidowei sure, but how are your tests compiling without C++11? Does GCC 4.5.2 support c++11 lambdas?
Dominik
@kaidowei
Mar 16 2016 12:23
yes
"Improved experimental support for the upcoming C++0x ISO C++ standard, including support for raw strings, lambda expressions and explicit type conversion operators."
Dominik
@kaidowei
Mar 16 2016 12:35
btw what are those lines for? doesn't the compiler set default by default?
Franklin Mathieu
@Snaipe
Mar 16 2016 12:37
the default implements these operations with std::move, rather than operator=.
as for why these lines are there, the old implementation of the sync filebuf used a std::unique_ptr, so both lines were needed for the move semantics
now they are just there for correctness with the C++11 standard
putting them in conditionals is fine
Dominik
@kaidowei
Mar 16 2016 12:41
mkay, thanks :)
Dominik
@kaidowei
Mar 16 2016 12:56
http://pastebin.com/3diuCx5k if you're interested