4 * Created on: 31 авг. 2016 г.
8 #ifndef SOURCE_DIRECTORY__TEST_INCLUDE_CDS_TEST_FC_HEAVY_VALUE_H_
9 #define SOURCE_DIRECTORY__TEST_INCLUDE_CDS_TEST_FC_HEAVY_VALUE_H_
15 template<int DefaultSize = 10>
23 static std::vector<int> pop_buff;
25 explicit HeavyValue(int new_value = 0, size_t new_bufer_size = DefaultSize)
27 buffer_size(new_bufer_size),
31 if( buffer_size != pop_buff.size() ){
32 pop_buff.resize(buffer_size);
33 for(size_t i = 0; i < buffer_size; ++i)
37 HeavyValue(const HeavyValue &other)
39 buffer_size(other.buffer_size),
41 nWriterNo(other.nWriterNo)
43 for(size_t i = 0; i < buffer_size; ++i)
44 pop_buff[i] = static_cast<int>(std::sqrt(other.pop_buff[i]));
46 void operator=(const int& new_value)
50 bool operator==(const int new_value) const
52 return value == new_value;
54 bool operator<=(const int new_value) const
56 return value <= new_value;
58 bool operator<(const int new_value) const
60 return value < new_value;
62 bool operator>(const int new_value) const
64 return value > new_value;
66 bool operator>=(const int new_value) const
68 return value >= new_value;
72 template<int DefaultSize>
73 std::vector<int> HeavyValue< DefaultSize >::pop_buff = {};
75 #endif /* SOURCE_DIRECTORY__TEST_INCLUDE_CDS_TEST_FC_HEVY_VALUE_H_ */