Replaced IS_VALUE_INITIALIZED by FAILED_TO_VALUE_INITIALIZE, to increase code readability.

[SVN r61270]
This commit is contained in:
Niels Dekker
2010-04-14 08:08:11 +00:00
parent b9ead6a415
commit 7254f02010

View File

@@ -298,19 +298,23 @@ namespace boost_no_complete_value_initialization
} }
// The first argument should specify whether a specific variable is value-initializated. // Returns zero when the specified object is value-initializated, and one otherwise.
// The second argument should specify the name of the variable. // Prints a message to standard output if the value-initialization has failed.
// Passes the information to standard output, if the variable is not value-initializated. template <typename T>
bool is_true(bool is_variable_value_initializated, const char *const variable_name) unsigned failed_to_value_initialized(const T& object, const char *const object_name)
{ {
if ( ! is_variable_value_initializated ) if ( is_value_initialized(object) )
{ {
std::cout << "Note: Failed to value-initialize " << variable_name << '.' << std::endl; return 0u;
}
else
{
std::cout << "Note: Failed to value-initialize " << object_name << '.' << std::endl;
return 1u;
} }
return is_variable_value_initializated;
} }
#define IS_VALUE_INITIALIZED(value) is_true( is_value_initialized(value), #value) #define FAILED_TO_VALUE_INITIALIZE(value) failed_to_value_initialized(value, #value)
// value_initializer initializes each of its data members by means // value_initializer initializes each of its data members by means
@@ -451,85 +455,85 @@ namespace boost_no_complete_value_initialization
unsigned check() const unsigned check() const
{ {
const unsigned num_failures = const unsigned num_failures =
(IS_VALUE_INITIALIZED(int_struct::data) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(int_struct::data) +
(IS_VALUE_INITIALIZED(m_enum_holder) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder) +
(IS_VALUE_INITIALIZED(m_enum_holder_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder_array[0]) +
(IS_VALUE_INITIALIZED(m_enum_holder_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder_array[1]) +
(IS_VALUE_INITIALIZED(m_enum) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum) +
(IS_VALUE_INITIALIZED(m_enum_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_array[0]) +
(IS_VALUE_INITIALIZED(m_enum_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_array[1]) +
(IS_VALUE_INITIALIZED(m_char) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char) +
(IS_VALUE_INITIALIZED(m_char_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char_array[0]) +
(IS_VALUE_INITIALIZED(m_char_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char_array[1]) +
(IS_VALUE_INITIALIZED(m_unsigned_char) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned_char) +
(IS_VALUE_INITIALIZED(m_unsigned_char_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned_char_array[0]) +
(IS_VALUE_INITIALIZED(m_unsigned_char_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned_char_array[1]) +
(IS_VALUE_INITIALIZED(m_short) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_short) +
(IS_VALUE_INITIALIZED(m_short_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_short_array[0]) +
(IS_VALUE_INITIALIZED(m_short_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_short_array[1]) +
(IS_VALUE_INITIALIZED(m_int) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int) +
(IS_VALUE_INITIALIZED(m_int_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_array[0]) +
(IS_VALUE_INITIALIZED(m_int_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_array[1]) +
(IS_VALUE_INITIALIZED(m_unsigned) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned) +
(IS_VALUE_INITIALIZED(m_unsigned_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned_array[0]) +
(IS_VALUE_INITIALIZED(m_unsigned_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_unsigned_array[1]) +
(IS_VALUE_INITIALIZED(m_long) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_long) +
(IS_VALUE_INITIALIZED(m_long_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_long_array[0]) +
(IS_VALUE_INITIALIZED(m_long_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_long_array[1]) +
(IS_VALUE_INITIALIZED(m_float) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_float) +
(IS_VALUE_INITIALIZED(m_float_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_float_array[0]) +
(IS_VALUE_INITIALIZED(m_float_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_float_array[1]) +
(IS_VALUE_INITIALIZED(m_double) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_double) +
(IS_VALUE_INITIALIZED(m_double_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_double_array[0]) +
(IS_VALUE_INITIALIZED(m_double_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_double_array[1]) +
(IS_VALUE_INITIALIZED(m_ptr) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_ptr) +
(IS_VALUE_INITIALIZED(m_ptr_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_ptr_array[0]) +
(IS_VALUE_INITIALIZED(m_ptr_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_ptr_array[1]) +
(IS_VALUE_INITIALIZED(m_int_struct) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct) +
(IS_VALUE_INITIALIZED(m_int_struct_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct_array[0]) +
(IS_VALUE_INITIALIZED(m_int_struct_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct_array[1]) +
(IS_VALUE_INITIALIZED(m_int_struct_holder) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder) +
(IS_VALUE_INITIALIZED(m_int_struct_holder_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder_array[0]) +
(IS_VALUE_INITIALIZED(m_int_struct_holder_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_struct_holder_array[1]) +
(IS_VALUE_INITIALIZED(m_pod_struct) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct) +
(IS_VALUE_INITIALIZED(m_pod_struct_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct_array[0]) +
(IS_VALUE_INITIALIZED(m_pod_struct_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct_array[1]) +
(IS_VALUE_INITIALIZED(m_derived_pod) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_pod) +
(IS_VALUE_INITIALIZED(m_derived_pod_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_pod_array[0]) +
(IS_VALUE_INITIALIZED(m_derived_pod_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_pod_array[1]) +
(IS_VALUE_INITIALIZED(m_derived_struct) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_struct) +
(IS_VALUE_INITIALIZED(m_derived_struct_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_struct_array[0]) +
(IS_VALUE_INITIALIZED(m_derived_struct_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_struct_array[1]) +
(IS_VALUE_INITIALIZED(m_derived_int_struct) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct) +
(IS_VALUE_INITIALIZED(m_derived_int_struct_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct_array[0]) +
(IS_VALUE_INITIALIZED(m_derived_int_struct_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_derived_int_struct_array[1]) +
(IS_VALUE_INITIALIZED(m_char_array_struct) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char_array_struct) +
(IS_VALUE_INITIALIZED(m_char_array_struct_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char_array_struct_array[0]) +
(IS_VALUE_INITIALIZED(m_char_array_struct_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_char_array_struct_array[1]) +
(IS_VALUE_INITIALIZED(m_int_array_pair) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_array_pair) +
(IS_VALUE_INITIALIZED(m_int_array_pair_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_array_pair_array[0]) +
(IS_VALUE_INITIALIZED(m_int_array_pair_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_array_pair_array[1]) +
(IS_VALUE_INITIALIZED(m_enum_holder_and_int) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int) +
(IS_VALUE_INITIALIZED(m_enum_holder_and_int_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int_array[0]) +
(IS_VALUE_INITIALIZED(m_enum_holder_and_int_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_enum_holder_and_int_array[1]) +
(IS_VALUE_INITIALIZED(m_private_and_protected_int) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int) +
(IS_VALUE_INITIALIZED(m_private_and_protected_int_array[0]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int_array[0]) +
(IS_VALUE_INITIALIZED(m_private_and_protected_int_array[1]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_private_and_protected_int_array[1]) +
(IS_VALUE_INITIALIZED(m_user_defined_destructor_holder) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder) +
(IS_VALUE_INITIALIZED(m_user_defined_destructor_holder_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder_array[0]) +
(IS_VALUE_INITIALIZED(m_user_defined_destructor_holder_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_user_defined_destructor_holder_array[1]) +
(IS_VALUE_INITIALIZED(m_virtual_destructor_holder) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder) +
(IS_VALUE_INITIALIZED(m_virtual_destructor_holder_array[0]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder_array[0]) +
(IS_VALUE_INITIALIZED(m_virtual_destructor_holder_array[1]) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_virtual_destructor_holder_array[1]) +
(IS_VALUE_INITIALIZED(m_non_pod) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_non_pod) +
(IS_VALUE_INITIALIZED(m_non_pod_array[0]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_non_pod_array[0]) +
(IS_VALUE_INITIALIZED(m_non_pod_array[1]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_non_pod_array[1]) +
(IS_VALUE_INITIALIZED(m_pod_struct_and_int_union) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union) +
(IS_VALUE_INITIALIZED(m_pod_struct_and_int_union_array[0]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union_array[0]) +
(IS_VALUE_INITIALIZED(m_pod_struct_and_int_union_array[1]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_pod_struct_and_int_union_array[1]) +
(IS_VALUE_INITIALIZED(m_int_and_pod_struct_union) ? 0 : 1) + FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union) +
(IS_VALUE_INITIALIZED(m_int_and_pod_struct_union_array[0]) ? 0 : 1 ) + FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union_array[0]) +
(IS_VALUE_INITIALIZED(m_int_and_pod_struct_union_array[1]) ? 0 : 1 ); FAILED_TO_VALUE_INITIALIZE(m_int_and_pod_struct_union_array[1]);
return num_failures; return num_failures;
} }
}; };
@@ -583,7 +587,7 @@ namespace boost_no_complete_value_initialization
<< num_failures_on_stack << '+' << num_failures_on_stack << '+'
<< num_failures_on_heap << "): " << num_failures_on_heap << "): "
<< total_num_failures << total_num_failures
<< "\nDetected by boost_no_complete_value_initialization::test() revision 12." << "\nDetected by boost_no_complete_value_initialization::test() revision 13."
<< std::endl; << std::endl;
} }
return static_cast<int>(total_num_failures); return static_cast<int>(total_num_failures);