> On 9 May 2018, at 08:18, Akim Demaille <[email protected]> wrote:
> 
>> Le 8 mai 2018 à 18:03, Hans Åberg <[email protected]> a écrit :
>> 
>> 
>>> On 8 May 2018, at 17:02, Akim Demaille <[email protected]> wrote:
>>> 
>>> Don't use std::endl, it flushes uselessly, and is considered bad
>>> style.
>> 
>> Flushing is good with debugging and error reporting, though.
> 
> I agree, but in that case an explicit `flush()` is better.
> And in the case of Bison, I don’t think we need any.
> 
> Besides, stdout is typically line buffered when connected to a terminal,
> and stderr is typically unbuffered.

Testing on MacOS 10.13.4 with clang++ in a debugger, I could not see no 
difference: the stuff gets output immediately, regardless of flushing and 
newlines.

On a POSIX computer, C streams are tied to the file descriptors, and C++ 
streams are internally tied to those of C, so they probably just use the POSIX 
buffers. At least GCC and Clang do: the file descriptors can be extracted from 
C++, too.





Reply via email to