Boost logo

Boost :

Subject: Re: [boost] [type_traits][units] migrating from ice_and
From: John Maddock (jz.maddock_at_[hidden])
Date: 2015-05-27 08:47:29

On 27/05/2015 12:31, Edward Diener wrote:
> On 5/27/2015 4:51 AM, Jürgen Hunold wrote:
>> Hi!
>> I've noticed that boost/type_traits/detail/ice_or.hpp and
>> boost/type_traits/detail/ice_and.hpp have been deprecated. Both
>> headers are
>> used as an implementation detail in boost/units/scaled_base_unit.hpp,
>> now
>> resulting in lots of warnings:
>> In file included from .../boost/units/scaled_base_unit.hpp:20:
>> .../boost/type_traits/detail/ice_or.hpp:17:10: warning: NOTE: Use of
>> this
>> header (ice_or.hpp) is deprecated [-W#pragma-messages]
>> # pragma message("NOTE: Use of this header (ice_or.hpp) is deprecated")
>> Question: Is there a known migration path from type_traits to what? MPL?
>> Or am I better off copying both files to Boost.Units and be done?
> I do not know boost/units/scaled_base_unit.hpp, but the migration path
> is to use the '||' operator directly rather than 'ice_or' in the code.
> The only reason for the icexxx constructs were for ancient compilers
> which couldn't handle the equivalent operators directly but Boost no
> longer tests/supports those compilers.
Edward's correct - these were introduced as workarounds for VC6 - time
to move on and use "real code" instead.

BTW, it's on my TODO list to systematically supply PR's for all these
outdated workarounds, I just haven't got there yet. Obviously if you
fix it yourself first, that's even better ;-)

HTH, John.

Boost list run by bdawes at, gregod at, cpdaniel at, john at