diff --git a/sprout/checksum/sum.hpp b/sprout/checksum/sum.hpp index db95c663..05d1fe42 100644 --- a/sprout/checksum/sum.hpp +++ b/sprout/checksum/sum.hpp @@ -49,7 +49,7 @@ namespace sprout { ); } public: - sum_basic() = default; + SPROUT_CONSTEXPR sum_basic() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sum_basic(sum_basic const&) = default; explicit SPROUT_CONSTEXPR sum_basic(sum_type sum) : sum_(sum) diff --git a/sprout/compost/effects/auto_pan.hpp b/sprout/compost/effects/auto_pan.hpp index d58c0b5c..352cee3a 100644 --- a/sprout/compost/effects/auto_pan.hpp +++ b/sprout/compost/effects/auto_pan.hpp @@ -78,7 +78,7 @@ namespace sprout { value_type rate_; int_type samples_per_sec_; public: - auto_pan_holder() = default; + SPROUT_CONSTEXPR auto_pan_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL auto_pan_holder(auto_pan_holder const&) = default; SPROUT_CONSTEXPR auto_pan_holder( value_type const& depth, value_type const& rate, diff --git a/sprout/compost/effects/changed_volume.hpp b/sprout/compost/effects/changed_volume.hpp index 6989e034..3aaf212c 100644 --- a/sprout/compost/effects/changed_volume.hpp +++ b/sprout/compost/effects/changed_volume.hpp @@ -27,7 +27,7 @@ namespace sprout { private: value_type value_; public: - change_volume_holder() = default; + SPROUT_CONSTEXPR change_volume_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL change_volume_holder(change_volume_holder const&) = default; explicit SPROUT_CONSTEXPR change_volume_holder(value_type const& value) : value_(value) diff --git a/sprout/compost/effects/chorus.hpp b/sprout/compost/effects/chorus.hpp index dd151d26..eaa3d3f6 100644 --- a/sprout/compost/effects/chorus.hpp +++ b/sprout/compost/effects/chorus.hpp @@ -83,7 +83,7 @@ namespace sprout { value_type rate_; int_type samples_per_sec_; public: - chorus_holder() = default; + SPROUT_CONSTEXPR chorus_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL chorus_holder(chorus_holder const&) = default; SPROUT_CONSTEXPR chorus_holder( value_type const& d, value_type const& depth, value_type const& rate, diff --git a/sprout/compost/effects/clipped.hpp b/sprout/compost/effects/clipped.hpp index b2bf81e3..b8fdd8c8 100644 --- a/sprout/compost/effects/clipped.hpp +++ b/sprout/compost/effects/clipped.hpp @@ -26,7 +26,7 @@ namespace sprout { value_type low_; value_type up_; public: - clip_holder() = default; + SPROUT_CONSTEXPR clip_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL clip_holder(clip_holder const&) = default; explicit SPROUT_CONSTEXPR clip_holder(value_type const& low = -1, value_type const& up = 1) : low_(low), up_(up) diff --git a/sprout/compost/effects/compressed.hpp b/sprout/compost/effects/compressed.hpp index 4b2c5506..3637b796 100644 --- a/sprout/compost/effects/compressed.hpp +++ b/sprout/compost/effects/compressed.hpp @@ -78,7 +78,7 @@ namespace sprout { value_type threshold_; value_type ratio_; public: - compress_holder() = default; + SPROUT_CONSTEXPR compress_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL compress_holder(compress_holder const&) = default; SPROUT_CONSTEXPR compress_holder(value_type const& threshold, value_type const& ratio) : threshold_(threshold), ratio_(ratio) diff --git a/sprout/compost/effects/distorted.hpp b/sprout/compost/effects/distorted.hpp index 20ca82da..bef4c715 100644 --- a/sprout/compost/effects/distorted.hpp +++ b/sprout/compost/effects/distorted.hpp @@ -27,7 +27,7 @@ namespace sprout { value_type gain_; value_type level_; public: - distort_holder() = default; + SPROUT_CONSTEXPR distort_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL distort_holder(distort_holder const&) = default; SPROUT_CONSTEXPR distort_holder(value_type const& gain, value_type const& level) : gain_(gain), level_(level) diff --git a/sprout/compost/effects/fuzzed.hpp b/sprout/compost/effects/fuzzed.hpp index f700e4e5..fa88ed8e 100644 --- a/sprout/compost/effects/fuzzed.hpp +++ b/sprout/compost/effects/fuzzed.hpp @@ -28,7 +28,7 @@ namespace sprout { value_type gain_; value_type level_; public: - fuzz_holder() = default; + SPROUT_CONSTEXPR fuzz_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL fuzz_holder(fuzz_holder const&) = default; SPROUT_CONSTEXPR fuzz_holder(value_type const& gain, value_type const& level) : gain_(gain), level_(level) diff --git a/sprout/compost/effects/noise_gated.hpp b/sprout/compost/effects/noise_gated.hpp index 13501d07..dcbbbbd3 100644 --- a/sprout/compost/effects/noise_gated.hpp +++ b/sprout/compost/effects/noise_gated.hpp @@ -71,7 +71,7 @@ namespace sprout { private: value_type threshold_; public: - noise_gate_holder() = default; + SPROUT_CONSTEXPR noise_gate_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL noise_gate_holder(noise_gate_holder const&) = default; explicit SPROUT_CONSTEXPR noise_gate_holder(value_type const& threshold) : threshold_(threshold) diff --git a/sprout/compost/effects/overdriven.hpp b/sprout/compost/effects/overdriven.hpp index eb04e91a..fb19a54d 100644 --- a/sprout/compost/effects/overdriven.hpp +++ b/sprout/compost/effects/overdriven.hpp @@ -55,7 +55,7 @@ namespace sprout { value_type gain_; value_type level_; public: - overdrive_holder() = default; + SPROUT_CONSTEXPR overdrive_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL overdrive_holder(overdrive_holder const&) = default; SPROUT_CONSTEXPR overdrive_holder(value_type const& gain, value_type const& level) : gain_(gain), level_(level) diff --git a/sprout/compost/effects/pseudo_stereo.hpp b/sprout/compost/effects/pseudo_stereo.hpp index 0451606e..f7a08aa2 100644 --- a/sprout/compost/effects/pseudo_stereo.hpp +++ b/sprout/compost/effects/pseudo_stereo.hpp @@ -78,7 +78,7 @@ namespace sprout { value_type delay_; int_type samples_per_sec_; public: - pseudo_stereo_holder() = default; + SPROUT_CONSTEXPR pseudo_stereo_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL pseudo_stereo_holder(pseudo_stereo_holder const&) = default; explicit SPROUT_CONSTEXPR pseudo_stereo_holder( value_type const& delay, int_type samples_per_sec = 44100 diff --git a/sprout/compost/effects/reverbed.hpp b/sprout/compost/effects/reverbed.hpp index c9a166d7..265231a4 100644 --- a/sprout/compost/effects/reverbed.hpp +++ b/sprout/compost/effects/reverbed.hpp @@ -78,7 +78,7 @@ namespace sprout { std::size_t repeat_; int_type samples_per_sec_; public: - reverb_holder() = default; + SPROUT_CONSTEXPR reverb_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL reverb_holder(reverb_holder const&) = default; SPROUT_CONSTEXPR reverb_holder( value_type const& attenuation, value_type const& delay, diff --git a/sprout/compost/effects/superposed.hpp b/sprout/compost/effects/superposed.hpp index 700fcc72..926d0275 100644 --- a/sprout/compost/effects/superposed.hpp +++ b/sprout/compost/effects/superposed.hpp @@ -29,7 +29,7 @@ namespace sprout { private: sprout::value_holder range_; public: - superpose_holder() = default; + SPROUT_CONSTEXPR superpose_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL superpose_holder(superpose_holder const&) = default; explicit SPROUT_CONSTEXPR superpose_holder(range2_type& range) : range_(range) diff --git a/sprout/compost/effects/tremolo.hpp b/sprout/compost/effects/tremolo.hpp index 14b87091..37532978 100644 --- a/sprout/compost/effects/tremolo.hpp +++ b/sprout/compost/effects/tremolo.hpp @@ -56,7 +56,7 @@ namespace sprout { value_type rate_; int_type samples_per_sec_; public: - tremolo_holder() = default; + SPROUT_CONSTEXPR tremolo_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL tremolo_holder(tremolo_holder const&) = default; SPROUT_CONSTEXPR tremolo_holder(value_type const& depth, value_type const& rate, int_type samples_per_sec = 44100) : depth_(depth), rate_(rate), samples_per_sec_(samples_per_sec) diff --git a/sprout/compost/effects/vibrato.hpp b/sprout/compost/effects/vibrato.hpp index f27c8f3e..ecad522b 100644 --- a/sprout/compost/effects/vibrato.hpp +++ b/sprout/compost/effects/vibrato.hpp @@ -82,7 +82,7 @@ namespace sprout { value_type rate_; int_type samples_per_sec_; public: - vibrato_holder() = default; + SPROUT_CONSTEXPR vibrato_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL vibrato_holder(vibrato_holder const&) = default; SPROUT_CONSTEXPR vibrato_holder( value_type const& d, value_type const& depth, value_type const& rate, diff --git a/sprout/compost/waves/white_noise.hpp b/sprout/compost/waves/white_noise.hpp index ad7de6e7..cfbb3c32 100644 --- a/sprout/compost/waves/white_noise.hpp +++ b/sprout/compost/waves/white_noise.hpp @@ -52,7 +52,7 @@ namespace sprout { typedef typename generator_type::engine_type engine_type; typedef typename generator_type::distribution_type distribution_type; public: - white_noise_range() = default; + SPROUT_CONSTEXPR white_noise_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL white_noise_range(white_noise_range const&) = default; explicit SPROUT_CONSTEXPR white_noise_range( range_type& range, @@ -92,7 +92,7 @@ namespace sprout { typedef typename generator_type::engine_type engine_type; typedef typename generator_type::distribution_type distribution_type; public: - white_noise_range() = default; + SPROUT_CONSTEXPR white_noise_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL white_noise_range(white_noise_range const&) = default; explicit SPROUT_CONSTEXPR white_noise_range( engine_type const& gen, diff --git a/sprout/compressed_pair.hpp b/sprout/compressed_pair.hpp index beb1bc78..90473bac 100644 --- a/sprout/compressed_pair.hpp +++ b/sprout/compressed_pair.hpp @@ -60,7 +60,10 @@ namespace sprout { first_type first_; second_type second_; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : first_() + , second_() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_(x) , second_(y) @@ -109,7 +112,9 @@ namespace sprout { private: second_type second_; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : second_() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_type(x) , second_(y) @@ -154,7 +159,10 @@ namespace sprout { private: first_type first_; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : first_() + , second_type() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_(x) , second_type(y) @@ -198,7 +206,10 @@ namespace sprout { typedef typename sprout::detail::call_traits::const_reference first_const_reference; typedef typename sprout::detail::call_traits::const_reference second_const_reference; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : first_type() + , second_type() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_type(x) , second_type(y) @@ -239,7 +250,10 @@ namespace sprout { private: second_type second_; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : first_type() + , second_() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_type(x) , second_(y) @@ -278,7 +292,10 @@ namespace sprout { first_type first_; second_type second_; public: - SPROUT_CONSTEXPR compressed_pair_impl() {} + SPROUT_CONSTEXPR compressed_pair_impl() + : first_() + , second_() + {} SPROUT_CONSTEXPR compressed_pair_impl(first_param_type x, second_param_type y) : first_(x) , second_(y) diff --git a/sprout/config/suffix.hpp b/sprout/config/suffix.hpp index c8521f11..cae0ee35 100644 --- a/sprout/config/suffix.hpp +++ b/sprout/config/suffix.hpp @@ -62,8 +62,8 @@ # define SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL = default; # define SPROUT_DEFAULTED_DESTRUCTOR_DECL = default; #else // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS -# define SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL {} -# define SPROUT_DEFAULTED_DESTRUCTOR_DECL {} +# define SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_NOEXCEPT {} +# define SPROUT_DEFAULTED_DESTRUCTOR_DECL SPROUT_NOEXCEPT {} #endif // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS // diff --git a/sprout/functional/ptr_fun.hpp b/sprout/functional/ptr_fun.hpp index 5421e221..709b1e7c 100644 --- a/sprout/functional/ptr_fun.hpp +++ b/sprout/functional/ptr_fun.hpp @@ -21,7 +21,7 @@ namespace sprout { protected: Result (*ptr_)(Arg); public: - pointer_to_unary_function() = default; + SPROUT_CONSTEXPR pointer_to_unary_function() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR pointer_to_unary_function(Result (*x)(Arg)) : ptr_(x) {} @@ -43,7 +43,7 @@ namespace sprout { protected: Result (*ptr_)(Arg1, Arg2); public: - pointer_to_binary_function() = default; + SPROUT_CONSTEXPR pointer_to_binary_function() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR pointer_to_binary_function(Result (*x)(Arg1, Arg2)) : ptr_(x) {} diff --git a/sprout/io.hpp b/sprout/io.hpp index 1b6a48cf..59a301b3 100644 --- a/sprout/io.hpp +++ b/sprout/io.hpp @@ -67,7 +67,7 @@ namespace sprout { private: bool flag_; public: - boolean_flag() = default; + SPROUT_CONSTEXPR boolean_flag() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL boolean_flag(boolean_flag const&) = default; SPROUT_CONSTEXPR boolean_flag(bool flag) : flag_(flag) @@ -92,7 +92,7 @@ namespace sprout { public: SPROUT_STATIC_CONSTEXPR sprout::io::flags::fmtflags mask = Mask; public: - field_flag() = default; + SPROUT_CONSTEXPR field_flag() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL field_flag(field_flag const&) = default; }; template @@ -320,7 +320,7 @@ namespace sprout { sprout::value_holder holder_; sprout::io::format_settings settings_; public: - format_holder() = default; + SPROUT_CONSTEXPR format_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL format_holder(format_holder const&) = default; explicit SPROUT_CONSTEXPR format_holder(T const& value) : holder_(value) diff --git a/sprout/iterator/back_insert_iterator.hpp b/sprout/iterator/back_insert_iterator.hpp index 309b004d..9d77b230 100644 --- a/sprout/iterator/back_insert_iterator.hpp +++ b/sprout/iterator/back_insert_iterator.hpp @@ -50,7 +50,7 @@ namespace sprout { protected: using base_type::container; public: - back_insert_iterator() = default; + SPROUT_CONSTEXPR back_insert_iterator() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR back_insert_iterator(param_type x) : base_type(x) {} diff --git a/sprout/iterator/clamp_iterator.hpp b/sprout/iterator/clamp_iterator.hpp index eca18c2d..7e130c65 100644 --- a/sprout/iterator/clamp_iterator.hpp +++ b/sprout/iterator/clamp_iterator.hpp @@ -45,7 +45,7 @@ namespace sprout { value_type low; value_type up; public: - clamp_iterator() = default; + SPROUT_CONSTEXPR clamp_iterator() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL clamp_iterator(clamp_iterator const&) = default; SPROUT_CONSTEXPR clamp_iterator(iterator_type it, value_type const& low, value_type const& up, Compare comp = Compare()) : current(it), comp(comp), low(low), up(up) diff --git a/sprout/iterator/front_insert_iterator.hpp b/sprout/iterator/front_insert_iterator.hpp index 71e783d6..0bb7277b 100644 --- a/sprout/iterator/front_insert_iterator.hpp +++ b/sprout/iterator/front_insert_iterator.hpp @@ -50,7 +50,7 @@ namespace sprout { protected: using base_type::container; public: - front_insert_iterator() = default; + SPROUT_CONSTEXPR front_insert_iterator() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR front_insert_iterator(param_type x) : base_type(x) {} diff --git a/sprout/iterator/reverse_iterator.hpp b/sprout/iterator/reverse_iterator.hpp index 053836c4..dd970fef 100644 --- a/sprout/iterator/reverse_iterator.hpp +++ b/sprout/iterator/reverse_iterator.hpp @@ -42,7 +42,7 @@ namespace sprout { protected: iterator_type current; public: - reverse_iterator() = default; + SPROUT_CONSTEXPR reverse_iterator() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_CONSTEXPR reverse_iterator(reverse_iterator const& other) : current(other.current) {} diff --git a/sprout/random/uniform_01.hpp b/sprout/random/uniform_01.hpp index a8783eb7..8d805f4f 100644 --- a/sprout/random/uniform_01.hpp +++ b/sprout/random/uniform_01.hpp @@ -121,7 +121,7 @@ namespace sprout { } #endif public: - uniform_01() = default; + SPROUT_CONSTEXPR uniform_01() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR uniform_01(param_type const&) SPROUT_NOEXCEPT {} SPROUT_CONSTEXPR result_type min() const SPROUT_NOEXCEPT { return result_type(0); diff --git a/sprout/range/adaptor/adjacent_filtered.hpp b/sprout/range/adaptor/adjacent_filtered.hpp index 33df9597..a0436eee 100644 --- a/sprout/range/adaptor/adjacent_filtered.hpp +++ b/sprout/range/adaptor/adjacent_filtered.hpp @@ -45,7 +45,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - adjacent_filtered_range() = default; + SPROUT_CONSTEXPR adjacent_filtered_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL adjacent_filtered_range(adjacent_filtered_range const&) = default; SPROUT_CONSTEXPR adjacent_filtered_range(Predicate pred, range_type& range) : base_type( @@ -65,7 +65,7 @@ namespace sprout { private: Predicate pred_; public: - adjacent_filter_holder() = default; + SPROUT_CONSTEXPR adjacent_filter_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL adjacent_filter_holder(adjacent_filter_holder const&) = default; SPROUT_CONSTEXPR adjacent_filter_holder(Predicate pred) : pred_(pred) diff --git a/sprout/range/adaptor/alternated.hpp b/sprout/range/adaptor/alternated.hpp index 9c5fd88e..d446a60d 100644 --- a/sprout/range/adaptor/alternated.hpp +++ b/sprout/range/adaptor/alternated.hpp @@ -48,7 +48,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - alternated_range() = default; + SPROUT_CONSTEXPR alternated_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL alternated_range(alternated_range const&) = default; SPROUT_CONSTEXPR alternated_range(range1_type& range1, range2_type& range2) : base_type( @@ -71,7 +71,7 @@ namespace sprout { private: sprout::value_holder range_; public: - alternate_holder() = default; + SPROUT_CONSTEXPR alternate_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL alternate_holder(alternate_holder const&) = default; explicit SPROUT_CONSTEXPR alternate_holder(range2_type& range) : range_(range) diff --git a/sprout/range/adaptor/amplitude_spectrum.hpp b/sprout/range/adaptor/amplitude_spectrum.hpp index 56e1d32b..468013d9 100644 --- a/sprout/range/adaptor/amplitude_spectrum.hpp +++ b/sprout/range/adaptor/amplitude_spectrum.hpp @@ -47,7 +47,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - amplitude_spectrum_range() = default; + SPROUT_CONSTEXPR amplitude_spectrum_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL amplitude_spectrum_range(amplitude_spectrum_range const&) = default; explicit SPROUT_CONSTEXPR amplitude_spectrum_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/blanked.hpp b/sprout/range/adaptor/blanked.hpp index 594d94d3..e2be1d50 100644 --- a/sprout/range/adaptor/blanked.hpp +++ b/sprout/range/adaptor/blanked.hpp @@ -47,7 +47,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename base_type::difference_type difference_type; public: - blanked_range() = default; + SPROUT_CONSTEXPR blanked_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL blanked_range(blanked_range const&) = default; explicit SPROUT_CONSTEXPR blanked_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/clamped.hpp b/sprout/range/adaptor/clamped.hpp index 3ae01b1a..15453aeb 100644 --- a/sprout/range/adaptor/clamped.hpp +++ b/sprout/range/adaptor/clamped.hpp @@ -44,7 +44,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename iterator::compare_type compare_type; public: - clamped_range() = default; + SPROUT_CONSTEXPR clamped_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL clamped_range(clamped_range const&) = default; explicit SPROUT_CONSTEXPR clamped_range( range_type& range, diff --git a/sprout/range/adaptor/copied.hpp b/sprout/range/adaptor/copied.hpp index 8ef10042..f94ad04d 100644 --- a/sprout/range/adaptor/copied.hpp +++ b/sprout/range/adaptor/copied.hpp @@ -33,7 +33,7 @@ namespace sprout { typedef sprout::adaptors::detail::adapted_range_default base_type; typedef typename base_type::range_type range_type; public: - copied_range() = default; + SPROUT_CONSTEXPR copied_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL copied_range(copied_range const&) = default; explicit SPROUT_CONSTEXPR copied_range(range_type& range) : base_type( @@ -57,7 +57,7 @@ namespace sprout { private: sprout::value_holder result_; public: - copy_holder() = default; + SPROUT_CONSTEXPR copy_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL copy_holder(copy_holder const&) = default; explicit SPROUT_CONSTEXPR copy_holder(result_type& result) : result_(result) diff --git a/sprout/range/adaptor/counting.hpp b/sprout/range/adaptor/counting.hpp index fc36404a..0a5bcb49 100644 --- a/sprout/range/adaptor/counting.hpp +++ b/sprout/range/adaptor/counting.hpp @@ -40,7 +40,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - counting_range() = default; + SPROUT_CONSTEXPR counting_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL counting_range(counting_range const&) = default; explicit SPROUT_CONSTEXPR counting_range(range_type& range) : base_type( @@ -83,7 +83,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - counting_range() = default; + SPROUT_CONSTEXPR counting_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL counting_range(counting_range const&) = default; explicit SPROUT_CONSTEXPR counting_range(value_type const& first) : base_type( diff --git a/sprout/range/adaptor/detail/adapted_range_default.hpp b/sprout/range/adaptor/detail/adapted_range_default.hpp index c17dcadf..aa02bf2c 100644 --- a/sprout/range/adaptor/detail/adapted_range_default.hpp +++ b/sprout/range/adaptor/detail/adapted_range_default.hpp @@ -30,7 +30,7 @@ namespace sprout { typedef sprout::range::range_container base_type; typedef typename base_type::iterator iterator; public: - adapted_range_default() = default; + SPROUT_CONSTEXPR adapted_range_default() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL adapted_range_default(adapted_range_default const&) = default; explicit SPROUT_CONSTEXPR adapted_range_default(iterator const& first, iterator const& last) : base_type(first, last) diff --git a/sprout/range/adaptor/detail/jointed_range_default.hpp b/sprout/range/adaptor/detail/jointed_range_default.hpp index eee90868..ed94bffa 100644 --- a/sprout/range/adaptor/detail/jointed_range_default.hpp +++ b/sprout/range/adaptor/detail/jointed_range_default.hpp @@ -131,7 +131,7 @@ namespace sprout { typedef sprout::range::range_container base_type; typedef typename base_type::iterator iterator; public: - jointed_range_default() = default; + SPROUT_CONSTEXPR jointed_range_default() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL jointed_range_default(jointed_range_default const&) = default; explicit SPROUT_CONSTEXPR jointed_range_default(iterator const& first, iterator const& last) : base_type(first, last) diff --git a/sprout/range/adaptor/detail/sized_range_default.hpp b/sprout/range/adaptor/detail/sized_range_default.hpp index 1b92210a..7d040b52 100644 --- a/sprout/range/adaptor/detail/sized_range_default.hpp +++ b/sprout/range/adaptor/detail/sized_range_default.hpp @@ -75,7 +75,7 @@ namespace sprout { typedef sprout::range::range_container base_type; typedef typename base_type::iterator iterator; public: - sized_range_default() = default; + SPROUT_CONSTEXPR sized_range_default() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sized_range_default(sized_range_default const&) = default; explicit SPROUT_CONSTEXPR sized_range_default(iterator const& first, iterator const& last) : base_type(first, last) diff --git a/sprout/range/adaptor/dft.hpp b/sprout/range/adaptor/dft.hpp index 987d883e..9ca7c8ac 100644 --- a/sprout/range/adaptor/dft.hpp +++ b/sprout/range/adaptor/dft.hpp @@ -38,7 +38,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - dft_range() = default; + SPROUT_CONSTEXPR dft_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL dft_range(dft_range const&) = default; explicit SPROUT_CONSTEXPR dft_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/filled.hpp b/sprout/range/adaptor/filled.hpp index 65725c0d..f4ce510a 100644 --- a/sprout/range/adaptor/filled.hpp +++ b/sprout/range/adaptor/filled.hpp @@ -40,7 +40,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - filled_range() = default; + SPROUT_CONSTEXPR filled_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL filled_range(filled_range const&) = default; SPROUT_CONSTEXPR filled_range( range_type& range, diff --git a/sprout/range/adaptor/filtered.hpp b/sprout/range/adaptor/filtered.hpp index 94d9b5db..12402f61 100644 --- a/sprout/range/adaptor/filtered.hpp +++ b/sprout/range/adaptor/filtered.hpp @@ -45,7 +45,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - filtered_range() = default; + SPROUT_CONSTEXPR filtered_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL filtered_range(filtered_range const&) = default; SPROUT_CONSTEXPR filtered_range(Predicate pred, range_type& range) : base_type( @@ -65,7 +65,7 @@ namespace sprout { private: Predicate pred_; public: - filter_holder() = default; + SPROUT_CONSTEXPR filter_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL filter_holder(filter_holder const&) = default; SPROUT_CONSTEXPR filter_holder(Predicate pred) : pred_(pred) diff --git a/sprout/range/adaptor/idft.hpp b/sprout/range/adaptor/idft.hpp index b403c532..8fffb136 100644 --- a/sprout/range/adaptor/idft.hpp +++ b/sprout/range/adaptor/idft.hpp @@ -38,7 +38,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - idft_range() = default; + SPROUT_CONSTEXPR idft_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL idft_range(idft_range const&) = default; explicit SPROUT_CONSTEXPR idft_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/indexed.hpp b/sprout/range/adaptor/indexed.hpp index 5aabcbe5..1f924251 100644 --- a/sprout/range/adaptor/indexed.hpp +++ b/sprout/range/adaptor/indexed.hpp @@ -39,7 +39,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename iterator::index_type index_type; public: - indexed_range() = default; + SPROUT_CONSTEXPR indexed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL indexed_range(indexed_range const&) = default; explicit SPROUT_CONSTEXPR indexed_range(range_type& range) : base_type( @@ -65,7 +65,7 @@ namespace sprout { private: index_type index_; public: - indexed_holder() = default; + SPROUT_CONSTEXPR indexed_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL indexed_holder(indexed_holder const&) = default; explicit SPROUT_CONSTEXPR indexed_holder(index_type index) : index_(index) diff --git a/sprout/range/adaptor/jointed.hpp b/sprout/range/adaptor/jointed.hpp index 315bce73..ec601a9e 100644 --- a/sprout/range/adaptor/jointed.hpp +++ b/sprout/range/adaptor/jointed.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - jointed_range() = default; + SPROUT_CONSTEXPR jointed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL jointed_range(jointed_range const&) = default; SPROUT_CONSTEXPR jointed_range(range1_type& range1, range2_type& range2) : base_type( @@ -66,7 +66,7 @@ namespace sprout { private: sprout::value_holder range_; public: - joint_holder() = default; + SPROUT_CONSTEXPR joint_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL joint_holder(joint_holder const&) = default; explicit SPROUT_CONSTEXPR joint_holder(range2_type& range) : range_(range) diff --git a/sprout/range/adaptor/merged.hpp b/sprout/range/adaptor/merged.hpp index a053cef2..755cdf7e 100644 --- a/sprout/range/adaptor/merged.hpp +++ b/sprout/range/adaptor/merged.hpp @@ -49,7 +49,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - merged_range() = default; + SPROUT_CONSTEXPR merged_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL merged_range(merged_range const&) = default; SPROUT_CONSTEXPR merged_range(range1_type& range1, range2_type& range2, Compare comp = Compare()) : base_type( @@ -71,7 +71,7 @@ namespace sprout { sprout::value_holder range_; Compare comp_; public: - merge_holder() = default; + SPROUT_CONSTEXPR merge_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL merge_holder(merge_holder const&) = default; explicit SPROUT_CONSTEXPR merge_holder(range2_type& range, Compare comp = Compare()) : range_(range) diff --git a/sprout/range/adaptor/outdirected.hpp b/sprout/range/adaptor/outdirected.hpp index c589e21d..0e1a268c 100644 --- a/sprout/range/adaptor/outdirected.hpp +++ b/sprout/range/adaptor/outdirected.hpp @@ -38,7 +38,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - outdirected_range() = default; + SPROUT_CONSTEXPR outdirected_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL outdirected_range(outdirected_range const&) = default; explicit SPROUT_CONSTEXPR outdirected_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/phase_spectrum.hpp b/sprout/range/adaptor/phase_spectrum.hpp index e0a61229..f1ed37fa 100644 --- a/sprout/range/adaptor/phase_spectrum.hpp +++ b/sprout/range/adaptor/phase_spectrum.hpp @@ -47,7 +47,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - phase_spectrum_range() = default; + SPROUT_CONSTEXPR phase_spectrum_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL phase_spectrum_range(phase_spectrum_range const&) = default; explicit SPROUT_CONSTEXPR phase_spectrum_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/removed.hpp b/sprout/range/adaptor/removed.hpp index 7bbe1894..7057d3ef 100644 --- a/sprout/range/adaptor/removed.hpp +++ b/sprout/range/adaptor/removed.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - removed_range() = default; + SPROUT_CONSTEXPR removed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL removed_range(removed_range const&) = default; SPROUT_CONSTEXPR removed_range(range_type& range, value_type const& value) : base_type( diff --git a/sprout/range/adaptor/removed_if.hpp b/sprout/range/adaptor/removed_if.hpp index e291b849..7a209027 100644 --- a/sprout/range/adaptor/removed_if.hpp +++ b/sprout/range/adaptor/removed_if.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - removed_if_range() = default; + SPROUT_CONSTEXPR removed_if_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL removed_if_range(removed_if_range const&) = default; SPROUT_CONSTEXPR removed_if_range(range_type& range, Predicate pred) : base_type( diff --git a/sprout/range/adaptor/replaced.hpp b/sprout/range/adaptor/replaced.hpp index f439bc2c..9c15a81f 100644 --- a/sprout/range/adaptor/replaced.hpp +++ b/sprout/range/adaptor/replaced.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - replaced_range() = default; + SPROUT_CONSTEXPR replaced_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL replaced_range(replaced_range const&) = default; SPROUT_CONSTEXPR replaced_range(range_type& range, value_type const& old_value, value_type const& new_value) : base_type( diff --git a/sprout/range/adaptor/replaced_if.hpp b/sprout/range/adaptor/replaced_if.hpp index 78dd52c9..a0c132de 100644 --- a/sprout/range/adaptor/replaced_if.hpp +++ b/sprout/range/adaptor/replaced_if.hpp @@ -47,7 +47,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - replaced_if_range() = default; + SPROUT_CONSTEXPR replaced_if_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL replaced_if_range(replaced_if_range const&) = default; SPROUT_CONSTEXPR replaced_if_range(range_type& range, Predicate pred, value_type const& new_value) : base_type( diff --git a/sprout/range/adaptor/reversed.hpp b/sprout/range/adaptor/reversed.hpp index cf670c4a..d35cd55f 100644 --- a/sprout/range/adaptor/reversed.hpp +++ b/sprout/range/adaptor/reversed.hpp @@ -38,7 +38,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - reversed_range() = default; + SPROUT_CONSTEXPR reversed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL reversed_range(reversed_range const&) = default; explicit SPROUT_CONSTEXPR reversed_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/sawtooth_wave.hpp b/sprout/range/adaptor/sawtooth_wave.hpp index da2ebcfc..7e309743 100644 --- a/sprout/range/adaptor/sawtooth_wave.hpp +++ b/sprout/range/adaptor/sawtooth_wave.hpp @@ -41,7 +41,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - sawtooth_wave_range() = default; + SPROUT_CONSTEXPR sawtooth_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sawtooth_wave_range(sawtooth_wave_range const&) = default; explicit SPROUT_CONSTEXPR sawtooth_wave_range( range_type& range, @@ -79,7 +79,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename base_type::difference_type difference_type; public: - sawtooth_wave_range() = default; + SPROUT_CONSTEXPR sawtooth_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sawtooth_wave_range(sawtooth_wave_range const&) = default; explicit SPROUT_CONSTEXPR sawtooth_wave_range( value_type const& frequency = 1, diff --git a/sprout/range/adaptor/set_difference.hpp b/sprout/range/adaptor/set_difference.hpp index 2afd18a8..d783d369 100644 --- a/sprout/range/adaptor/set_difference.hpp +++ b/sprout/range/adaptor/set_difference.hpp @@ -49,7 +49,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - set_difference_range() = default; + SPROUT_CONSTEXPR set_difference_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_difference_range(set_difference_range const&) = default; SPROUT_CONSTEXPR set_difference_range(range1_type& range1, range2_type& range2, Compare comp = Compare()) : base_type( @@ -71,7 +71,7 @@ namespace sprout { sprout::value_holder range_; Compare comp_; public: - set_difference_holder() = default; + SPROUT_CONSTEXPR set_difference_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_difference_holder(set_difference_holder const&) = default; explicit SPROUT_CONSTEXPR set_difference_holder(range2_type& range, Compare comp = Compare()) : range_(range) diff --git a/sprout/range/adaptor/set_intersection.hpp b/sprout/range/adaptor/set_intersection.hpp index 65759fcb..10cdbaa9 100644 --- a/sprout/range/adaptor/set_intersection.hpp +++ b/sprout/range/adaptor/set_intersection.hpp @@ -49,7 +49,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - set_intersection_range() = default; + SPROUT_CONSTEXPR set_intersection_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_intersection_range(set_intersection_range const&) = default; SPROUT_CONSTEXPR set_intersection_range(range1_type& range1, range2_type& range2, Compare comp = Compare()) : base_type( @@ -71,7 +71,7 @@ namespace sprout { sprout::value_holder range_; Compare comp_; public: - set_intersection_holder() = default; + SPROUT_CONSTEXPR set_intersection_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_intersection_holder(set_intersection_holder const&) = default; explicit SPROUT_CONSTEXPR set_intersection_holder(range2_type& range, Compare comp = Compare()) : range_(range) diff --git a/sprout/range/adaptor/set_symmetric_difference.hpp b/sprout/range/adaptor/set_symmetric_difference.hpp index 61689c5b..d0ca3bac 100644 --- a/sprout/range/adaptor/set_symmetric_difference.hpp +++ b/sprout/range/adaptor/set_symmetric_difference.hpp @@ -49,7 +49,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - set_symmetric_difference_range() = default; + SPROUT_CONSTEXPR set_symmetric_difference_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_symmetric_difference_range(set_symmetric_difference_range const&) = default; SPROUT_CONSTEXPR set_symmetric_difference_range(range1_type& range1, range2_type& range2, Compare comp = Compare()) : base_type( @@ -71,7 +71,7 @@ namespace sprout { sprout::value_holder range_; Compare comp_; public: - set_symmetric_difference_holder() = default; + SPROUT_CONSTEXPR set_symmetric_difference_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_symmetric_difference_holder(set_symmetric_difference_holder const&) = default; explicit SPROUT_CONSTEXPR set_symmetric_difference_holder(range2_type& range, Compare comp = Compare()) : range_(range) diff --git a/sprout/range/adaptor/set_union.hpp b/sprout/range/adaptor/set_union.hpp index 83227ca7..240ac488 100644 --- a/sprout/range/adaptor/set_union.hpp +++ b/sprout/range/adaptor/set_union.hpp @@ -49,7 +49,7 @@ namespace sprout { typedef typename base_type::range2_type range2_type; typedef typename base_type::iterator iterator; public: - set_union_range() = default; + SPROUT_CONSTEXPR set_union_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_union_range(set_union_range const&) = default; SPROUT_CONSTEXPR set_union_range(range1_type& range1, range2_type& range2, Compare comp = Compare()) : base_type( @@ -71,7 +71,7 @@ namespace sprout { sprout::value_holder range_; Compare comp_; public: - set_union_holder() = default; + SPROUT_CONSTEXPR set_union_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL set_union_holder(set_union_holder const&) = default; explicit SPROUT_CONSTEXPR set_union_holder(range2_type& range, Compare comp = Compare()) : range_(range) diff --git a/sprout/range/adaptor/sinusoidal.hpp b/sprout/range/adaptor/sinusoidal.hpp index 32f706f3..0e5d84e3 100644 --- a/sprout/range/adaptor/sinusoidal.hpp +++ b/sprout/range/adaptor/sinusoidal.hpp @@ -41,7 +41,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - sinusoidal_range() = default; + SPROUT_CONSTEXPR sinusoidal_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sinusoidal_range(sinusoidal_range const&) = default; explicit SPROUT_CONSTEXPR sinusoidal_range( range_type& range, @@ -79,7 +79,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename base_type::difference_type difference_type; public: - sinusoidal_range() = default; + SPROUT_CONSTEXPR sinusoidal_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sinusoidal_range(sinusoidal_range const&) = default; explicit SPROUT_CONSTEXPR sinusoidal_range( value_type const& frequency = 1, diff --git a/sprout/range/adaptor/size_enumed.hpp b/sprout/range/adaptor/size_enumed.hpp index 718a003e..4157e33a 100644 --- a/sprout/range/adaptor/size_enumed.hpp +++ b/sprout/range/adaptor/size_enumed.hpp @@ -42,7 +42,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - size_enumed_range() = default; + SPROUT_CONSTEXPR size_enumed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL size_enumed_range(size_enumed_range const&) = default; explicit SPROUT_CONSTEXPR size_enumed_range(range_type& range) : base_type( @@ -72,7 +72,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - size_enumed_range() = default; + SPROUT_CONSTEXPR size_enumed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL size_enumed_range(size_enumed_range const&) = default; explicit SPROUT_CONSTEXPR size_enumed_range( range_type& range, @@ -101,7 +101,7 @@ namespace sprout { size_type sep_size_; bool omit_last_; public: - size_enum_holder() = default; + SPROUT_CONSTEXPR size_enum_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL size_enum_holder(size_enum_holder const&) = default; explicit SPROUT_CONSTEXPR size_enum_holder(size_type size, bool omit_last = false) : sep_size_(size) diff --git a/sprout/range/adaptor/sized.hpp b/sprout/range/adaptor/sized.hpp index 8dc8a119..af660e27 100644 --- a/sprout/range/adaptor/sized.hpp +++ b/sprout/range/adaptor/sized.hpp @@ -33,7 +33,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::size_type size_type; public: - sized_range() = default; + SPROUT_CONSTEXPR sized_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sized_range(sized_range const&) = default; explicit SPROUT_CONSTEXPR sized_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/square_wave.hpp b/sprout/range/adaptor/square_wave.hpp index 15a521a9..1120e5dd 100644 --- a/sprout/range/adaptor/square_wave.hpp +++ b/sprout/range/adaptor/square_wave.hpp @@ -41,7 +41,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - square_wave_range() = default; + SPROUT_CONSTEXPR square_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL square_wave_range(square_wave_range const&) = default; explicit SPROUT_CONSTEXPR square_wave_range( range_type& range, @@ -83,7 +83,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename base_type::difference_type difference_type; public: - square_wave_range() = default; + SPROUT_CONSTEXPR square_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL square_wave_range(square_wave_range const&) = default; explicit SPROUT_CONSTEXPR square_wave_range( value_type const& frequency = 1, diff --git a/sprout/range/adaptor/steps.hpp b/sprout/range/adaptor/steps.hpp index 487d13c5..62ddd1fc 100644 --- a/sprout/range/adaptor/steps.hpp +++ b/sprout/range/adaptor/steps.hpp @@ -41,7 +41,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::difference_type difference_type; public: - steps_range() = default; + SPROUT_CONSTEXPR steps_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL steps_range(steps_range const&) = default; explicit SPROUT_CONSTEXPR steps_range(range_type& range) : base_type( @@ -74,7 +74,7 @@ namespace sprout { difference_type width_; difference_type init_; public: - step_holder() = default; + SPROUT_CONSTEXPR step_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL step_holder(step_holder const&) = default; explicit SPROUT_CONSTEXPR step_holder(difference_type width, difference_type init = 0) : width_(width), init_(init) diff --git a/sprout/range/adaptor/to_lower.hpp b/sprout/range/adaptor/to_lower.hpp index d3e585a2..200bcf76 100644 --- a/sprout/range/adaptor/to_lower.hpp +++ b/sprout/range/adaptor/to_lower.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - to_lower_range() = default; + SPROUT_CONSTEXPR to_lower_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL to_lower_range(to_lower_range const&) = default; explicit SPROUT_CONSTEXPR to_lower_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/to_upper.hpp b/sprout/range/adaptor/to_upper.hpp index cada4f1c..44a30f28 100644 --- a/sprout/range/adaptor/to_upper.hpp +++ b/sprout/range/adaptor/to_upper.hpp @@ -46,7 +46,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - to_upper_range() = default; + SPROUT_CONSTEXPR to_upper_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL to_upper_range(to_upper_range const&) = default; explicit SPROUT_CONSTEXPR to_upper_range(range_type& range) : base_type( diff --git a/sprout/range/adaptor/transformed.hpp b/sprout/range/adaptor/transformed.hpp index 462cb53e..ec36d17f 100644 --- a/sprout/range/adaptor/transformed.hpp +++ b/sprout/range/adaptor/transformed.hpp @@ -49,7 +49,7 @@ namespace sprout { > base_type; typedef typename base_type::iterator iterator; public: - transformed_range() = default; + SPROUT_CONSTEXPR transformed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL transformed_range(transformed_range const&) = default; SPROUT_CONSTEXPR transformed_range(BinaryFunction func, range1_type& range1, range2_type& range2) : base_type( @@ -81,7 +81,7 @@ namespace sprout { > base_type; typedef typename base_type::iterator iterator; public: - transformed_range() = default; + SPROUT_CONSTEXPR transformed_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL transformed_range(transformed_range const&) = default; SPROUT_CONSTEXPR transformed_range(UnaryFunction func, range1_type& range) : base_type( @@ -103,7 +103,7 @@ namespace sprout { BinaryFunction func_; sprout::value_holder range_; public: - transform_holder() = default; + SPROUT_CONSTEXPR transform_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL transform_holder(transform_holder const&) = default; SPROUT_CONSTEXPR transform_holder(BinaryFunction func, range2_type& range) : func_(func) @@ -123,7 +123,7 @@ namespace sprout { private: UnaryFunction func_; public: - transform_holder() = default; + SPROUT_CONSTEXPR transform_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL transform_holder(transform_holder const&) = default; explicit SPROUT_CONSTEXPR transform_holder(UnaryFunction func) : func_(func) diff --git a/sprout/range/adaptor/triangle_wave.hpp b/sprout/range/adaptor/triangle_wave.hpp index 4d0da00e..efe1d77d 100644 --- a/sprout/range/adaptor/triangle_wave.hpp +++ b/sprout/range/adaptor/triangle_wave.hpp @@ -41,7 +41,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename base_type::value_type value_type; public: - triangle_wave_range() = default; + SPROUT_CONSTEXPR triangle_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL triangle_wave_range(triangle_wave_range const&) = default; explicit SPROUT_CONSTEXPR triangle_wave_range( range_type& range, @@ -79,7 +79,7 @@ namespace sprout { typedef typename base_type::value_type value_type; typedef typename base_type::difference_type difference_type; public: - triangle_wave_range() = default; + SPROUT_CONSTEXPR triangle_wave_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL triangle_wave_range(triangle_wave_range const&) = default; explicit SPROUT_CONSTEXPR triangle_wave_range( value_type const& frequency = 1, diff --git a/sprout/range/adaptor/uniqued.hpp b/sprout/range/adaptor/uniqued.hpp index 0ab92b9a..e8272fb1 100644 --- a/sprout/range/adaptor/uniqued.hpp +++ b/sprout/range/adaptor/uniqued.hpp @@ -47,7 +47,7 @@ namespace sprout { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - uniqued_range() = default; + SPROUT_CONSTEXPR uniqued_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL uniqued_range(uniqued_range const&) = default; SPROUT_CONSTEXPR uniqued_range(range_type& range, Predicate pred) : base_type( diff --git a/sprout/range/adaptor/valued.hpp b/sprout/range/adaptor/valued.hpp index 769ba210..f98c724d 100644 --- a/sprout/range/adaptor/valued.hpp +++ b/sprout/range/adaptor/valued.hpp @@ -39,7 +39,7 @@ namespace sprout { typedef typename base_type::iterator iterator; typedef typename iterator::param_type param_type; public: - valued_range() = default; + SPROUT_CONSTEXPR valued_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL valued_range(valued_range const&) = default; SPROUT_CONSTEXPR valued_range(param_type param, range_type& range) : base_type( @@ -62,7 +62,7 @@ namespace sprout { private: holder_type holder_; public: - valued_holder() = default; + SPROUT_CONSTEXPR valued_holder() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL valued_holder(valued_holder const&) = default; explicit SPROUT_CONSTEXPR valued_holder(param_type param) : holder_(param) diff --git a/sprout/string/string.hpp b/sprout/string/string.hpp index 13132dba..b590c8e0 100644 --- a/sprout/string/string.hpp +++ b/sprout/string/string.hpp @@ -294,7 +294,7 @@ namespace sprout { } public: // construct/copy/destroy: - basic_string() = default; + SPROUT_CONSTEXPR basic_string() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL basic_string(basic_string const&) = default; template::type> SPROUT_CONSTEXPR basic_string(basic_string const& str) diff --git a/sprout/sub_array/sub_array.hpp b/sprout/sub_array/sub_array.hpp index 7b4ae79f..f623173e 100644 --- a/sprout/sub_array/sub_array.hpp +++ b/sprout/sub_array/sub_array.hpp @@ -211,7 +211,7 @@ namespace sprout { using impl_type::to_last_; public: // construct/copy/destroy: - sub_array() = default; + SPROUT_CONSTEXPR sub_array() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL sub_array(sub_array const&) = default; SPROUT_CONSTEXPR sub_array(param_type arr, const_iterator first, const_iterator last) : impl_type( diff --git a/sprout/tuple/fused.hpp b/sprout/tuple/fused.hpp index 570445c8..73ba70cc 100644 --- a/sprout/tuple/fused.hpp +++ b/sprout/tuple/fused.hpp @@ -55,7 +55,7 @@ namespace sprout { return f_(sprout::tuples::get(sprout::forward(t))...); } public: - fused() = default; + SPROUT_CONSTEXPR fused() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL fused(fused const&) = default; explicit SPROUT_CONSTEXPR fused(F f) : f_(f) diff --git a/sprout/tuple/tuple/tuple_decl.hpp b/sprout/tuple/tuple/tuple_decl.hpp index 9a993e2b..d5c2868b 100644 --- a/sprout/tuple/tuple/tuple_decl.hpp +++ b/sprout/tuple/tuple/tuple_decl.hpp @@ -114,7 +114,7 @@ namespace sprout { protected: SPROUT_CXX14_CONSTEXPR void swap(tuple_impl&) SPROUT_NOEXCEPT {} public: - tuple_impl() = default; + SPROUT_CONSTEXPR tuple_impl() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL template explicit SPROUT_CONSTEXPR tuple_impl(UTypes&&...) SPROUT_NOEXCEPT {} tuple_impl(tuple_impl const&) = default; @@ -439,7 +439,7 @@ namespace sprout { class tuple<> { public: // tuple construction - tuple() = default; + SPROUT_CONSTEXPR tuple() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL tuple(tuple const&) = default; tuple(tuple&&) = default; template diff --git a/sprout/weed/eval_result.hpp b/sprout/weed/eval_result.hpp index 500d6d07..aa27a381 100644 --- a/sprout/weed/eval_result.hpp +++ b/sprout/weed/eval_result.hpp @@ -24,7 +24,7 @@ namespace sprout { presult_type presult_; Context ctx_; public: - eval_result() = default; + SPROUT_CONSTEXPR eval_result() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_CONSTEXPR eval_result( bool success, Iterator current, diff --git a/sprout/weed/parser/char/char.hpp b/sprout/weed/parser/char/char.hpp index e5ef1959..33d2a352 100644 --- a/sprout/weed/parser/char/char.hpp +++ b/sprout/weed/parser/char/char.hpp @@ -47,7 +47,7 @@ namespace sprout { private: T t_; public: - lit_char_p() = default; + SPROUT_CONSTEXPR lit_char_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR lit_char_p(T const& t) : t_(t) {} @@ -104,7 +104,7 @@ namespace sprout { private: T t_; public: - char_p() = default; + SPROUT_CONSTEXPR char_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR char_p(T const& t) : t_(t) {} @@ -145,7 +145,7 @@ namespace sprout { T f_; T l_; public: - char_range_p() = default; + SPROUT_CONSTEXPR char_range_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_CONSTEXPR char_range_p(T const& f, T const& l) : f_(f), l_(l) {} @@ -185,7 +185,7 @@ namespace sprout { private: T t_; public: - char_set_p() = default; + SPROUT_CONSTEXPR char_set_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR char_set_p(T const& t) : t_(t) {} diff --git a/sprout/weed/parser/directive/as_array.hpp b/sprout/weed/parser/directive/as_array.hpp index 78dc8d66..4a595993 100644 --- a/sprout/weed/parser/directive/as_array.hpp +++ b/sprout/weed/parser/directive/as_array.hpp @@ -62,7 +62,7 @@ namespace sprout { ; } public: - as_array_p() = default; + SPROUT_CONSTEXPR as_array_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR as_array_p( Parser const& p ) diff --git a/sprout/weed/parser/directive/as_tuple.hpp b/sprout/weed/parser/directive/as_tuple.hpp index 6f5fb560..17c1e36a 100644 --- a/sprout/weed/parser/directive/as_tuple.hpp +++ b/sprout/weed/parser/directive/as_tuple.hpp @@ -62,7 +62,7 @@ namespace sprout { ; } public: - as_tuple_p() = default; + SPROUT_CONSTEXPR as_tuple_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR as_tuple_p( Parser const& p ) diff --git a/sprout/weed/parser/directive/omit.hpp b/sprout/weed/parser/directive/omit.hpp index 5000b2c5..a187e8c5 100644 --- a/sprout/weed/parser/directive/omit.hpp +++ b/sprout/weed/parser/directive/omit.hpp @@ -56,7 +56,7 @@ namespace sprout { ; } public: - omit_p() = default; + SPROUT_CONSTEXPR omit_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR omit_p( Parser const& p ) diff --git a/sprout/weed/parser/directive/repeat.hpp b/sprout/weed/parser/directive/repeat.hpp index 947e8705..d76ea4ab 100644 --- a/sprout/weed/parser/directive/repeat.hpp +++ b/sprout/weed/parser/directive/repeat.hpp @@ -166,7 +166,7 @@ namespace sprout { expr_type expr_; std::size_t count_; public: - repeat_p() = default; + SPROUT_CONSTEXPR repeat_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR repeat_p(Parser const& p, std::size_t count = -1) : expr_(sprout::weed::make_terminal_or_expr(p)) , count_(count) diff --git a/sprout/weed/parser/directive/replace.hpp b/sprout/weed/parser/directive/replace.hpp index 5a4e5140..091619c5 100644 --- a/sprout/weed/parser/directive/replace.hpp +++ b/sprout/weed/parser/directive/replace.hpp @@ -57,7 +57,7 @@ namespace sprout { ; } public: - replace_p() = default; + SPROUT_CONSTEXPR replace_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_CONSTEXPR replace_p( Parser const& p, value_type const& value diff --git a/sprout/weed/parser/lim.hpp b/sprout/weed/parser/lim.hpp index 870c9b74..3083e25f 100644 --- a/sprout/weed/parser/lim.hpp +++ b/sprout/weed/parser/lim.hpp @@ -47,7 +47,7 @@ namespace sprout { expr_type expr_; sprout::weed::limited::category limited_category_; public: - limit_p() = default; + SPROUT_CONSTEXPR limit_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR limit_p( Parser const& p, sprout::weed::limited::category limited_category = sprout::weed::limited::discard diff --git a/sprout/weed/parser/string/string.hpp b/sprout/weed/parser/string/string.hpp index 2000f23b..1e1897b1 100644 --- a/sprout/weed/parser/string/string.hpp +++ b/sprout/weed/parser/string/string.hpp @@ -46,7 +46,7 @@ namespace sprout { private: T t_; public: - lit_str_p() = default; + SPROUT_CONSTEXPR lit_str_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR lit_str_p(T const& t) : t_(t) {} @@ -119,7 +119,7 @@ namespace sprout { private: T t_; public: - str_p() = default; + SPROUT_CONSTEXPR str_p() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL explicit SPROUT_CONSTEXPR str_p(T const& t) : t_(t) {} diff --git a/sprout/weed/parser_result.hpp b/sprout/weed/parser_result.hpp index 22375101..9c8d7d33 100644 --- a/sprout/weed/parser_result.hpp +++ b/sprout/weed/parser_result.hpp @@ -22,7 +22,7 @@ namespace sprout { Iterator current_; Attribute attr_; public: - parser_result() = default; + SPROUT_CONSTEXPR parser_result() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL SPROUT_CONSTEXPR parser_result( bool success, Iterator current, diff --git a/sprout/weed/unused.hpp b/sprout/weed/unused.hpp index d4d786c1..4d5ac200 100644 --- a/sprout/weed/unused.hpp +++ b/sprout/weed/unused.hpp @@ -17,7 +17,7 @@ namespace sprout { // struct unused { public: - unused() = default; + SPROUT_CONSTEXPR unused() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL template SPROUT_CONSTEXPR unused(T) {} template diff --git a/testspr/iterator.hpp b/testspr/iterator.hpp index 6b186d50..8858a7d8 100644 --- a/testspr/iterator.hpp +++ b/testspr/iterator.hpp @@ -40,7 +40,9 @@ namespace testspr { protected: iterator_type current; public: - SPROUT_CONSTEXPR reduct_iterator() {}; + SPROUT_CONSTEXPR reduct_iterator() + : current() + {} SPROUT_CONSTEXPR reduct_iterator(reduct_iterator const& other) = default; explicit SPROUT_CONSTEXPR reduct_iterator(iterator_type it) : current(it) diff --git a/testspr/range.hpp b/testspr/range.hpp index 6f4353d3..84baa330 100644 --- a/testspr/range.hpp +++ b/testspr/range.hpp @@ -40,7 +40,7 @@ namespace testspr { typedef typename base_type::range_type range_type; typedef typename base_type::iterator iterator; public: - reducted_range() = default; + SPROUT_CONSTEXPR reducted_range() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL reducted_range(reducted_range const&) = default; explicit SPROUT_CONSTEXPR reducted_range(range_type& range) : base_type(