Re: [libcxx] r291345 - Replace identifiers called `__out` because Windows.h #defines it.
Just a correction on the commit message: its not Windows.h that is defining `__out`. `__out` is a SAL keyword. Unfortunately, I don't know of a way to disable SAL. On Sat, Jan 7, 2017 at 3:27 AM, Eric Fiselier via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: ericwf > Date: Sat Jan 7 05:27:06 2017 > New Revision: 291345 > > URL: http://llvm.org/viewvc/llvm-project?rev=291345&view=rev > Log: > Replace identifiers called `__out` because Windows.h #defines it. > > Windows is greedy and it defines the identifier `__out` as a macro. > This patch renames all conflicting libc++ identifiers in order > to correctly work on Windows. > > Modified: > libcxx/trunk/include/algorithm > libcxx/trunk/include/experimental/algorithm > libcxx/trunk/include/experimental/iterator > libcxx/trunk/include/regex > libcxx/trunk/test/support/nasty_macros.hpp > > Modified: libcxx/trunk/include/algorithm > URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ > algorithm?rev=291345&r1=291344&r2=291345&view=diff > > == > --- libcxx/trunk/include/algorithm (original) > +++ libcxx/trunk/include/algorithm Sat Jan 7 05:27:06 2017 > @@ -3100,28 +3100,28 @@ template class _UniformRandomNumberGenerator> > _LIBCPP_INLINE_VISIBILITY > _SampleIterator __sample(_PopulationIterator __first, > - _PopulationIterator __last, _SampleIterator > __out, > + _PopulationIterator __last, _SampleIterator > __output, > _Distance __n, > _UniformRandomNumberGenerator & __g, > input_iterator_tag) { > >_Distance __k = 0; >for (; __first != __last && __k < __n; ++__first, (void)++__k) > -__out[__k] = *__first; > +__output[__k] = *__first; >_Distance __sz = __k; >for (; __first != __last; ++__first, (void)++__k) { > _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, > __k)(__g); > if (__r < __sz) > - __out[__r] = *__first; > + __output[__r] = *__first; >} > - return __out + _VSTD::min(__n, __k); > + return __output + _VSTD::min(__n, __k); > } > > template _Distance, >class _UniformRandomNumberGenerator> > _LIBCPP_INLINE_VISIBILITY > _SampleIterator __sample(_PopulationIterator __first, > - _PopulationIterator __last, _SampleIterator > __out, > + _PopulationIterator __last, _SampleIterator > __output, > _Distance __n, > _UniformRandomNumberGenerator& __g, > forward_iterator_tag) { > @@ -3130,18 +3130,18 @@ _SampleIterator __sample(_PopulationIter > _Distance __r = > _VSTD::uniform_int_distribution<_Distance>(0, > --__unsampled_sz)(__g); > if (__r < __n) { > - *__out++ = *__first; > + *__output++ = *__first; >--__n; > } >} > - return __out; > + return __output; > } > > template _Distance, >class _UniformRandomNumberGenerator> > _LIBCPP_INLINE_VISIBILITY > _SampleIterator __sample(_PopulationIterator __first, > - _PopulationIterator __last, _SampleIterator > __out, > + _PopulationIterator __last, _SampleIterator > __output, > _Distance __n, _UniformRandomNumberGenerator& > __g) { >typedef typename iterator_traits<_PopulationIterator>::iterator_ > category > _PopCategory; > @@ -3153,7 +3153,7 @@ _SampleIterator __sample(_PopulationIter >typedef typename common_type<_Distance, _Difference>::type _CommonType; >_LIBCPP_ASSERT(__n >= 0, "N must be a positive number."); >return _VSTD::__sample( > - __first, __last, __out, _CommonType(__n), > + __first, __last, __output, _CommonType(__n), >__g, _PopCategory()); > } > > @@ -3162,9 +3162,9 @@ template class _UniformRandomNumberGenerator> > inline _LIBCPP_INLINE_VISIBILITY > _SampleIterator sample(_PopulationIterator __first, > - _PopulationIterator __last, _SampleIterator __out, > + _PopulationIterator __last, _SampleIterator > __output, > _Distance __n, _UniformRandomNumberGenerator&& > __g) { > -return _VSTD::__sample(__first, __last, __out, __n, __g); > +return _VSTD::__sample(__first, __last, __output, __n, __g); > } > #endif // _LIBCPP_STD_VER > 14 > > > Modified: libcxx/trunk/include/experimental/algorithm > URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ > experimental/algorithm?rev=291345&r1=291344&r2=291345&view=diff > > == > --- libcxx/trunk/include/experimental/algorithm (original) > +++ libcxx/trunk/include/experimental/algorithm Sat Jan 7 05:27:06 2017 > @@ -60,9 +60,9 @@ template c
[libcxx] r291345 - Replace identifiers called `__out` because Windows.h #defines it.
Author: ericwf Date: Sat Jan 7 05:27:06 2017 New Revision: 291345 URL: http://llvm.org/viewvc/llvm-project?rev=291345&view=rev Log: Replace identifiers called `__out` because Windows.h #defines it. Windows is greedy and it defines the identifier `__out` as a macro. This patch renames all conflicting libc++ identifiers in order to correctly work on Windows. Modified: libcxx/trunk/include/algorithm libcxx/trunk/include/experimental/algorithm libcxx/trunk/include/experimental/iterator libcxx/trunk/include/regex libcxx/trunk/test/support/nasty_macros.hpp Modified: libcxx/trunk/include/algorithm URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/algorithm?rev=291345&r1=291344&r2=291345&view=diff == --- libcxx/trunk/include/algorithm (original) +++ libcxx/trunk/include/algorithm Sat Jan 7 05:27:06 2017 @@ -3100,28 +3100,28 @@ template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator & __g, input_iterator_tag) { _Distance __k = 0; for (; __first != __last && __k < __n; ++__first, (void)++__k) -__out[__k] = *__first; +__output[__k] = *__first; _Distance __sz = __k; for (; __first != __last; ++__first, (void)++__k) { _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g); if (__r < __sz) - __out[__r] = *__first; + __output[__r] = *__first; } - return __out + _VSTD::min(__n, __k); + return __output + _VSTD::min(__n, __k); } template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator& __g, forward_iterator_tag) { @@ -3130,18 +3130,18 @@ _SampleIterator __sample(_PopulationIter _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g); if (__r < __n) { - *__out++ = *__first; + *__output++ = *__first; --__n; } } - return __out; + return __output; } template _LIBCPP_INLINE_VISIBILITY _SampleIterator __sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator& __g) { typedef typename iterator_traits<_PopulationIterator>::iterator_category _PopCategory; @@ -3153,7 +3153,7 @@ _SampleIterator __sample(_PopulationIter typedef typename common_type<_Distance, _Difference>::type _CommonType; _LIBCPP_ASSERT(__n >= 0, "N must be a positive number."); return _VSTD::__sample( - __first, __last, __out, _CommonType(__n), + __first, __last, __output, _CommonType(__n), __g, _PopCategory()); } @@ -3162,9 +3162,9 @@ template inline _LIBCPP_INLINE_VISIBILITY _SampleIterator sample(_PopulationIterator __first, - _PopulationIterator __last, _SampleIterator __out, + _PopulationIterator __last, _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator&& __g) { -return _VSTD::__sample(__first, __last, __out, __n, __g); +return _VSTD::__sample(__first, __last, __output, __n, __g); } #endif // _LIBCPP_STD_VER > 14 Modified: libcxx/trunk/include/experimental/algorithm URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/algorithm?rev=291345&r1=291344&r2=291345&view=diff == --- libcxx/trunk/include/experimental/algorithm (original) +++ libcxx/trunk/include/experimental/algorithm Sat Jan 7 05:27:06 2017 @@ -60,9 +60,9 @@ template inline _LIBCPP_INLINE_VISIBILITY _SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last, - _SampleIterator __out, _Distance __n, + _SampleIterator __output, _Distance __n, _UniformRandomNumberGenerator &&__g) { - return _VSTD::__sample(__first, __last, __out, __n, __g); + return _VSTD::__sample(__first, __last, __output, __n, __g); } _LIBCPP_END_NAMESPACE_LFTS Modified: libcxx/trunk/include/experimental/iterator URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/iterator?rev=291345&r1=291344&r2=291345&view=diff == ---