Please disregard... The confusion is mine. I have two different levels
of AST going on, and two different Variants going on...
On Sun, Nov 18, 2018 at 6:00 PM Michael Powell
Hello,
I've got a Boost.Variant confusion going on during ctor relay.
I have two types participating in the Variant, an Integer type and a Floating Point type. Both are Numeric as a base class. i.e. something like:
template<typename T> struct numeric {};
struct integer : numeric<long> {};
struct floating_point : numeric<double> {};
Then:
using constant_value = boost::variant<..., floating_point, integer, ...>;
Somewhere during the handling, I have a test case in which I have a constant_value{} starting out in life as an integer{}.
However, somewhere during handling, variant is misinterpreting integer (which=3) as a floating_point (which=2).
This is incorrect, of course.
I could force the issue, I suppose and re-set the value to the integer, but I'd like to understand the issue. I think it's a bug in variant, or perhaps a "feature" confusing integer with floating_point along base class numeric lines?
Any ideas