Hi all,
we are, at the boost::gil corner, investigating a runtime failure when
compiling with gcc 5.4. When running in release configuration the following
code fails:
#include <iostream>
#include
using namespace boost::gil;
using namespace std;
void error_if(bool condition) {
if (condition)
throw std::exception();
}
bits32s c32s_min = channel_traits<bits32s>::min_value();
bits32s c32s_max = channel_traits<bits32s>::max_value();
// For channel values simply initialize the value directly
template <typename ChannelValue>
struct value_core {
typedef ChannelValue channel_t;
channel_t _min_v, _max_v;
value_core() : _min_v(channel_traits<ChannelValue>::min_value()),
_max_v(channel_traits<ChannelValue>::max_value())
{}
};
int main(int argc, char *argv[])
{
value_core<bits32s> a;
bits32s v_min, v_max;
v_min = channel_convert<bits32s>(c32s_min);
v_max = channel_convert<bits32s>(c32s_max);
//std::cout << v_min << std::endl;
// std::cout << this->_min_v << std::endl;
//std::cout << v_max << std::endl;
// std::cout << this->_max_v << std::endl;
error_if(v_min != a._min_v || v_max != a._max_v);
}
The interesting thing is that everything works with the cout's enabled.
Has anyone ever dealt with a similar issue?
Thanks,
Christian