mirror of
https://github.com/boostorg/config.git
synced 2025-08-02 13:54:27 +02:00
Added value-initialization test for m_int_array, tested individual array elements separately, printed number of failures.
[SVN r61164]
This commit is contained in:
@@ -90,9 +90,7 @@ namespace boost_no_complete_value_initialization
|
|||||||
{
|
{
|
||||||
if ( ! is_value_initializated )
|
if ( ! is_value_initializated )
|
||||||
{
|
{
|
||||||
std::cout
|
std::cout << "Note: " << expression << " evaluated to false." << std::endl;
|
||||||
<< "Information: " << expression << " evaluated to false.\n"
|
|
||||||
<< std::endl;
|
|
||||||
}
|
}
|
||||||
return is_value_initializated;
|
return is_value_initializated;
|
||||||
}
|
}
|
||||||
@@ -117,6 +115,7 @@ namespace boost_no_complete_value_initialization
|
|||||||
float m_float;
|
float m_float;
|
||||||
double m_double;
|
double m_double;
|
||||||
void* m_ptr;
|
void* m_ptr;
|
||||||
|
int m_int_array[2];
|
||||||
pod_struct m_pod;
|
pod_struct m_pod;
|
||||||
pod_struct m_pod_array[2];
|
pod_struct m_pod_array[2];
|
||||||
non_pod_class m_non_pod;
|
non_pod_class m_non_pod;
|
||||||
@@ -136,6 +135,7 @@ namespace boost_no_complete_value_initialization
|
|||||||
m_float(),
|
m_float(),
|
||||||
m_double(),
|
m_double(),
|
||||||
m_ptr(),
|
m_ptr(),
|
||||||
|
m_int_array(),
|
||||||
m_pod(),
|
m_pod(),
|
||||||
m_pod_array(),
|
m_pod_array(),
|
||||||
m_non_pod(),
|
m_non_pod(),
|
||||||
@@ -158,12 +158,14 @@ namespace boost_no_complete_value_initialization
|
|||||||
(IS_ZERO(m_float) ? 0 : 1) +
|
(IS_ZERO(m_float) ? 0 : 1) +
|
||||||
(IS_ZERO(m_double) ? 0 : 1) +
|
(IS_ZERO(m_double) ? 0 : 1) +
|
||||||
(IS_ZERO(m_ptr) ? 0 : 1) +
|
(IS_ZERO(m_ptr) ? 0 : 1) +
|
||||||
|
(IS_ZERO(m_int_array[0]) ? 0 : 1) +
|
||||||
|
(IS_ZERO(m_int_array[1]) ? 0 : 1) +
|
||||||
(IS_TRUE( is_zero_initialized(m_pod) ) ? 0 : 1) +
|
(IS_TRUE( is_zero_initialized(m_pod) ) ? 0 : 1) +
|
||||||
(IS_TRUE( m_non_pod.is_value_initialized() ) ? 0 : 1) +
|
(IS_TRUE( m_non_pod.is_value_initialized() ) ? 0 : 1) +
|
||||||
(IS_TRUE( is_zero_initialized(m_pod_array[0])
|
(IS_TRUE( is_zero_initialized(m_pod_array[0]) ) ? 0 : 1) +
|
||||||
&& is_zero_initialized(m_pod_array[1]) ) ? 0 : 1) +
|
(IS_TRUE( is_zero_initialized(m_pod_array[1]) ) ? 0 : 1) +
|
||||||
(IS_TRUE( m_non_pod_array[0].is_value_initialized()
|
(IS_TRUE( m_non_pod_array[0].is_value_initialized() ) ? 0 : 1 ) +
|
||||||
&& m_non_pod_array[1].is_value_initialized() ) ? 0 : 1);
|
(IS_TRUE( m_non_pod_array[1].is_value_initialized() ) ? 0 : 1 );
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -175,6 +177,12 @@ namespace boost_no_complete_value_initialization
|
|||||||
const value_initializer* const ptr = new value_initializer();
|
const value_initializer* const ptr = new value_initializer();
|
||||||
const unsigned num_failures_on_heap = ptr->check();
|
const unsigned num_failures_on_heap = ptr->check();
|
||||||
delete ptr;
|
delete ptr;
|
||||||
|
if ( num_failures_on_stack > 0 || num_failures_on_heap > 0 )
|
||||||
|
{
|
||||||
|
std::cout << "Number of initialization failures on the stack: " << num_failures_on_stack
|
||||||
|
<< "\nNumber of initialization failures on the heap: " << num_failures_on_heap << std::endl;
|
||||||
|
|
||||||
|
}
|
||||||
return static_cast<int>(num_failures_on_stack + num_failures_on_heap);
|
return static_cast<int>(num_failures_on_stack + num_failures_on_heap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user