diff --git a/sprout/bitset/bitset.hpp b/sprout/bitset/bitset.hpp index 0e4bacff..0d0c8eca 100644 --- a/sprout/bitset/bitset.hpp +++ b/sprout/bitset/bitset.hpp @@ -898,7 +898,7 @@ namespace sprout { word_type* wp_; std::size_t bpos_; private: - reference() = delete; + reference() SPROUT_DELETED_FUNCTION_DECL public: SPROUT_CONSTEXPR reference(bitset& b, std::size_t pos) SPROUT_NOEXCEPT : wp_(&b.getword(pos)) diff --git a/sprout/breed/detail/poly_function.hpp b/sprout/breed/detail/poly_function.hpp index 8df3f908..6a3074b5 100644 --- a/sprout/breed/detail/poly_function.hpp +++ b/sprout/breed/detail/poly_function.hpp @@ -44,7 +44,7 @@ namespace sprout { return *this; } private: - arg& operator=(arg const&) = delete; + arg& operator=(arg const&) SPROUT_DELETED_FUNCTION_DECL }; template struct arg { @@ -63,7 +63,7 @@ namespace sprout { return *this; } private: - arg& operator=(arg const&) = delete; + arg& operator=(arg const&) SPROUT_DELETED_FUNCTION_DECL }; template diff --git a/sprout/compost/effects/auto_pan.hpp b/sprout/compost/effects/auto_pan.hpp index 7dec17a6..13ae262c 100644 --- a/sprout/compost/effects/auto_pan.hpp +++ b/sprout/compost/effects/auto_pan.hpp @@ -111,7 +111,7 @@ namespace sprout { // auto_pan // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::auto_pan_forwarder auto_pan{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::auto_pan_forwarder auto_pan = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/changed_volume.hpp b/sprout/compost/effects/changed_volume.hpp index 97e74752..ae9a9603 100644 --- a/sprout/compost/effects/changed_volume.hpp +++ b/sprout/compost/effects/changed_volume.hpp @@ -46,7 +46,7 @@ namespace sprout { // changed_volume // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::changed_volume_forwarder changed_volume{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::changed_volume_forwarder changed_volume = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/chorus.hpp b/sprout/compost/effects/chorus.hpp index a0ccc573..6a51da74 100644 --- a/sprout/compost/effects/chorus.hpp +++ b/sprout/compost/effects/chorus.hpp @@ -119,7 +119,7 @@ namespace sprout { // chorus // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::chorus_forwarder chorus{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::chorus_forwarder chorus = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/clipped.hpp b/sprout/compost/effects/clipped.hpp index eec8e88e..41c94ab3 100644 --- a/sprout/compost/effects/clipped.hpp +++ b/sprout/compost/effects/clipped.hpp @@ -48,7 +48,7 @@ namespace sprout { // clipped // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::clipped_forwarder clipped{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::clipped_forwarder clipped = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/compressed.hpp b/sprout/compost/effects/compressed.hpp index 99d5ea2a..5ec6b3d6 100644 --- a/sprout/compost/effects/compressed.hpp +++ b/sprout/compost/effects/compressed.hpp @@ -101,7 +101,7 @@ namespace sprout { // compressed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::compressed_forwarder compressed{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::compressed_forwarder compressed = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/distorted.hpp b/sprout/compost/effects/distorted.hpp index 74feaf2f..a15748dd 100644 --- a/sprout/compost/effects/distorted.hpp +++ b/sprout/compost/effects/distorted.hpp @@ -49,7 +49,7 @@ namespace sprout { // distorted // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::distorted_forwarder distorted{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::distorted_forwarder distorted = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/fuzzed.hpp b/sprout/compost/effects/fuzzed.hpp index f886bb28..ac85c9cc 100644 --- a/sprout/compost/effects/fuzzed.hpp +++ b/sprout/compost/effects/fuzzed.hpp @@ -50,7 +50,7 @@ namespace sprout { // fuzzed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::fuzzed_forwarder fuzzed{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::fuzzed_forwarder fuzzed = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/noise_gated.hpp b/sprout/compost/effects/noise_gated.hpp index 7af8aa13..232c398b 100644 --- a/sprout/compost/effects/noise_gated.hpp +++ b/sprout/compost/effects/noise_gated.hpp @@ -91,7 +91,7 @@ namespace sprout { // noise_gated // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::noise_gated_forwarder noise_gated{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::noise_gated_forwarder noise_gated = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/overdriven.hpp b/sprout/compost/effects/overdriven.hpp index b5674de2..2145f83c 100644 --- a/sprout/compost/effects/overdriven.hpp +++ b/sprout/compost/effects/overdriven.hpp @@ -77,7 +77,7 @@ namespace sprout { // overdriven // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::overdriven_forwarder overdriven{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::overdriven_forwarder overdriven = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/pseudo_stereo.hpp b/sprout/compost/effects/pseudo_stereo.hpp index bc96798f..eddac748 100644 --- a/sprout/compost/effects/pseudo_stereo.hpp +++ b/sprout/compost/effects/pseudo_stereo.hpp @@ -107,7 +107,7 @@ namespace sprout { // pseudo_stereo // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::pseudo_stereo_forwarder pseudo_stereo{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::pseudo_stereo_forwarder pseudo_stereo = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/rectified.hpp b/sprout/compost/effects/rectified.hpp index 7c3a3d6a..2c510bad 100644 --- a/sprout/compost/effects/rectified.hpp +++ b/sprout/compost/effects/rectified.hpp @@ -41,7 +41,7 @@ namespace sprout { // rectified // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::rectified_forwarder rectified{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::rectified_forwarder rectified = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/reverbed.hpp b/sprout/compost/effects/reverbed.hpp index 0d8b6de0..4624839e 100644 --- a/sprout/compost/effects/reverbed.hpp +++ b/sprout/compost/effects/reverbed.hpp @@ -114,7 +114,7 @@ namespace sprout { // reverbed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::reverbed_forwarder reverbed{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::reverbed_forwarder reverbed = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/superposed.hpp b/sprout/compost/effects/superposed.hpp index e92a27d1..3ce63c8d 100644 --- a/sprout/compost/effects/superposed.hpp +++ b/sprout/compost/effects/superposed.hpp @@ -54,7 +54,7 @@ namespace sprout { // superposed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::superposed_forwarder superposed{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::superposed_forwarder superposed = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/tremolo.hpp b/sprout/compost/effects/tremolo.hpp index 674a9561..4220f5e8 100644 --- a/sprout/compost/effects/tremolo.hpp +++ b/sprout/compost/effects/tremolo.hpp @@ -86,7 +86,7 @@ namespace sprout { // tremolo // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::tremolo_forwarder tremolo{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::tremolo_forwarder tremolo = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/vibrato.hpp b/sprout/compost/effects/vibrato.hpp index b60b13bd..adda38e5 100644 --- a/sprout/compost/effects/vibrato.hpp +++ b/sprout/compost/effects/vibrato.hpp @@ -118,7 +118,7 @@ namespace sprout { // vibrato // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::vibrato_forwarder vibrato{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::vibrato_forwarder vibrato = {}; } // anonymous-namespace // diff --git a/sprout/compost/effects/vocal_cancelled.hpp b/sprout/compost/effects/vocal_cancelled.hpp index 7f776969..193af091 100644 --- a/sprout/compost/effects/vocal_cancelled.hpp +++ b/sprout/compost/effects/vocal_cancelled.hpp @@ -20,7 +20,7 @@ namespace sprout { // vocal_cancelled // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::effects::vocal_cancelled_forwarder vocal_cancelled{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::effects::vocal_cancelled_forwarder vocal_cancelled = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/as_complex.hpp b/sprout/compost/formats/as_complex.hpp index 1714cd0c..caab860c 100644 --- a/sprout/compost/formats/as_complex.hpp +++ b/sprout/compost/formats/as_complex.hpp @@ -29,7 +29,7 @@ namespace sprout { // as_complex // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_complex_forwarder as_complex{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_complex_forwarder as_complex = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/as_imag.hpp b/sprout/compost/formats/as_imag.hpp index 592cefa3..766801ca 100644 --- a/sprout/compost/formats/as_imag.hpp +++ b/sprout/compost/formats/as_imag.hpp @@ -30,7 +30,7 @@ namespace sprout { // as_imag // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_imag_forwarder as_imag{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_imag_forwarder as_imag = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/as_pcm_wave.hpp b/sprout/compost/formats/as_pcm_wave.hpp index 20b191d6..77e0947b 100644 --- a/sprout/compost/formats/as_pcm_wave.hpp +++ b/sprout/compost/formats/as_pcm_wave.hpp @@ -88,8 +88,8 @@ namespace sprout { // as_pcm_wave16 // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_pcm_wave_forwarder as_pcm_wave8{}; - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_pcm_wave_forwarder as_pcm_wave16{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_pcm_wave_forwarder as_pcm_wave8 = {}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_pcm_wave_forwarder as_pcm_wave16 = {}; } // anonymous-namespace } // namespace formats diff --git a/sprout/compost/formats/as_real.hpp b/sprout/compost/formats/as_real.hpp index 04184553..96519ec7 100644 --- a/sprout/compost/formats/as_real.hpp +++ b/sprout/compost/formats/as_real.hpp @@ -30,7 +30,7 @@ namespace sprout { // as_real // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_real_forwarder as_real{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::as_real_forwarder as_real = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/effected_each.hpp b/sprout/compost/formats/effected_each.hpp index b8533892..4c5e5513 100644 --- a/sprout/compost/formats/effected_each.hpp +++ b/sprout/compost/formats/effected_each.hpp @@ -68,7 +68,7 @@ namespace sprout { // effected_each_cannel // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_each_cannel_forwarder effected_each_cannel{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_each_cannel_forwarder effected_each_cannel = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/effected_left.hpp b/sprout/compost/formats/effected_left.hpp index d8580279..db36c7cd 100644 --- a/sprout/compost/formats/effected_left.hpp +++ b/sprout/compost/formats/effected_left.hpp @@ -44,7 +44,7 @@ namespace sprout { // effected_left_cannel // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_left_cannel_forwarder effected_left_cannel{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_left_cannel_forwarder effected_left_cannel = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/effected_right.hpp b/sprout/compost/formats/effected_right.hpp index b6ab5658..093da954 100644 --- a/sprout/compost/formats/effected_right.hpp +++ b/sprout/compost/formats/effected_right.hpp @@ -44,7 +44,7 @@ namespace sprout { // effected_right_cannel // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_right_cannel_forwarder effected_right_cannel{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::effected_right_cannel_forwarder effected_right_cannel = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/left_channel.hpp b/sprout/compost/formats/left_channel.hpp index e5323daf..c5301f51 100644 --- a/sprout/compost/formats/left_channel.hpp +++ b/sprout/compost/formats/left_channel.hpp @@ -17,7 +17,7 @@ namespace sprout { // left_channel // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::left_channel_forwarder left_channel{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::left_channel_forwarder left_channel = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/right_channel.hpp b/sprout/compost/formats/right_channel.hpp index a05fe745..92b46a8d 100644 --- a/sprout/compost/formats/right_channel.hpp +++ b/sprout/compost/formats/right_channel.hpp @@ -17,7 +17,7 @@ namespace sprout { // right_channel // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::formats::right_channel_forwarder right_channel{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::formats::right_channel_forwarder right_channel = {}; } // anonymous-namespace // diff --git a/sprout/compost/formats/stereo.hpp b/sprout/compost/formats/stereo.hpp index 0489f844..df50b40e 100644 --- a/sprout/compost/formats/stereo.hpp +++ b/sprout/compost/formats/stereo.hpp @@ -11,7 +11,7 @@ namespace sprout { // stereo // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::alternated_forwarder stereo{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::alternated_forwarder stereo = {}; } // anonymous-namespace } // namespace formats diff --git a/sprout/compost/waves/blanked.hpp b/sprout/compost/waves/blanked.hpp index 68ad2fdb..0d45b7db 100644 --- a/sprout/compost/waves/blanked.hpp +++ b/sprout/compost/waves/blanked.hpp @@ -32,7 +32,7 @@ namespace sprout { // blanked // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::waves::blanked_forwarder blanked{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::waves::blanked_forwarder blanked = {}; } // anonymous-namespace } // namespace waves diff --git a/sprout/compost/waves/white_noise.hpp b/sprout/compost/waves/white_noise.hpp index 1a25d069..24923422 100644 --- a/sprout/compost/waves/white_noise.hpp +++ b/sprout/compost/waves/white_noise.hpp @@ -124,7 +124,7 @@ namespace sprout { // white_noise // namespace { - SPROUT_STATIC_CONSTEXPR sprout::compost::waves::white_noise_forwarder white_noise{}; + SPROUT_STATIC_CONSTEXPR sprout::compost::waves::white_noise_forwarder white_noise = {}; } // anonymous-namespace // diff --git a/sprout/config/auto_config.hpp b/sprout/config/auto_config.hpp index 648bfebb..b7524272 100644 --- a/sprout/config/auto_config.hpp +++ b/sprout/config/auto_config.hpp @@ -12,6 +12,24 @@ # endif // #ifdef SPROUT_NO_CONSTEXPR #endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +// +// SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS +// +#ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS +# ifdef SPROUT_NO_DEFAULTED_FUNCTIONS +# define SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS +# endif // #ifdef SPROUT_NO_CONSTEXPR +#endif // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS + +// +// SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS +// +#ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS +# ifdef SPROUT_NO_DELETED_FUNCTIONS +# define SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS +# endif // #ifdef SPROUT_NO_CONSTEXPR +#endif // #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS + // // SPROUT_CONFIG_DISABLE_NOEXCEPT // diff --git a/sprout/config/compiler/borland.hpp b/sprout/config/compiler/borland.hpp index 55f9c960..3a99b77c 100644 --- a/sprout/config/compiler/borland.hpp +++ b/sprout/config/compiler/borland.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_BORLAND_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_BORLAND_HPP diff --git a/sprout/config/compiler/clang.hpp b/sprout/config/compiler/clang.hpp index 787d46f1..cbd59164 100644 --- a/sprout/config/compiler/clang.hpp +++ b/sprout/config/compiler/clang.hpp @@ -5,6 +5,14 @@ # define SPROUT_NO_CONSTEXPR #endif +#if !__has_feature(cxx_defaulted_functions) +# define SPROUT_NO_DEFAULTED_FUNCTIONS +#endif + +#if !__has_feature(cxx_deleted_functions) +# define SPROUT_NO_DELETED_FUNCTIONS +#endif + #if !__has_feature(cxx_noexcept) # define SPROUT_NO_NOEXCEPT #endif @@ -21,6 +29,10 @@ # define SPROUT_NO_DELEGATING_CONSTRUCTORS #endif +#if !__has_feature(cxx_unicode_literals) +# define SPROUT_NO_UNICODE_LITERALS +#endif + #if !defined(SPROUT_NO_CONSTEXPR) # define SPROUT_WORKAROUND_NOT_TERMINATE_RECURSIVE_CONSTEXPR_FUNCTION_TEMPLATE #endif diff --git a/sprout/config/compiler/codegear.hpp b/sprout/config/compiler/codegear.hpp index 924228df..ba3d1f2c 100644 --- a/sprout/config/compiler/codegear.hpp +++ b/sprout/config/compiler/codegear.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_CODEGEAR_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_CODEGEAR_HPP diff --git a/sprout/config/compiler/common_edg.hpp b/sprout/config/compiler/common_edg.hpp index dfdd1c05..840e6a36 100644 --- a/sprout/config/compiler/common_edg.hpp +++ b/sprout/config/compiler/common_edg.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_COMMON_EDG_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_COMMON_EDG_HPP diff --git a/sprout/config/compiler/cxx11.hpp b/sprout/config/compiler/cxx11.hpp index 1e2cee6b..cb83325d 100644 --- a/sprout/config/compiler/cxx11.hpp +++ b/sprout/config/compiler/cxx11.hpp @@ -4,6 +4,12 @@ #ifdef SPROUT_NO_CONSTEXPR # define SPROUT_NO_CXX11_CONSTEXPR #endif +#ifdef SPROUT_NO_DEFAULTED_FUNCTIONS +# define SPROUT_NO_CXX11_DEFAULTED_FUNCTIONS +#endif +#ifdef SPROUT_NO_DELETED_FUNCTIONS +# define SPROUT_NO_CXX11_DELETED_FUNCTIONS +#endif #ifdef SPROUT_NO_NOEXCEPT # define SPROUT_NO_CXX11_CNOEXCEPT #endif @@ -16,5 +22,8 @@ #ifdef SPROUT_NO_DELEGATING_CONSTRUCTORS # define SPROUT_NO_CXX11_CDELEGATING_CONSTRUCTORS #endif +#ifdef SPROUT_NO_UNICODE_LITERALS +# define SPROUT_NO_CXX11_UNICODE_LITERALS +#endif #endif // #ifndef SPROUT_CONFIG_COMPILER_CXX11_HPP diff --git a/sprout/config/compiler/digitalmars.hpp b/sprout/config/compiler/digitalmars.hpp index 6e8de695..1b557a87 100644 --- a/sprout/config/compiler/digitalmars.hpp +++ b/sprout/config/compiler/digitalmars.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_DIGITALMARS_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_DIGITALMARS_HPP diff --git a/sprout/config/compiler/gcc.hpp b/sprout/config/compiler/gcc.hpp index 43839099..4ef18e52 100644 --- a/sprout/config/compiler/gcc.hpp +++ b/sprout/config/compiler/gcc.hpp @@ -5,6 +5,14 @@ # define SPROUT_NO_CONSTEXPR #endif +#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)) +# define SPROUT_NO_DEFAULTED_FUNCTIONS +#endif + +#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)) +# define SPROUT_NO_DELETED_FUNCTIONS +#endif + #if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)) # define SPROUT_NO_NOEXCEPT #endif @@ -21,6 +29,10 @@ # define SPROUT_NO_DELEGATING_CONSTRUCTORS #endif +#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)) +# define SPROUT_NO_UNICODE_LITERALS +#endif + #if ((__GNUC__ >= 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) # define SPROUT_HAS_CONSTEXPR_CMATH_FUNCTION #endif diff --git a/sprout/config/compiler/gcc_xml.hpp b/sprout/config/compiler/gcc_xml.hpp index 2e803135..94e46e05 100644 --- a/sprout/config/compiler/gcc_xml.hpp +++ b/sprout/config/compiler/gcc_xml.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_GCC_XML_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_GCC_XML_HPP diff --git a/sprout/config/compiler/metrowerks.hpp b/sprout/config/compiler/metrowerks.hpp index 15710503..81d64661 100644 --- a/sprout/config/compiler/metrowerks.hpp +++ b/sprout/config/compiler/metrowerks.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_METROWERKS_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_METROWERKS_HPP diff --git a/sprout/config/compiler/mpw.hpp b/sprout/config/compiler/mpw.hpp index e7cc977a..cf4b4202 100644 --- a/sprout/config/compiler/mpw.hpp +++ b/sprout/config/compiler/mpw.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_MPW_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_MPW_HPP diff --git a/sprout/config/compiler/pathscale.hpp b/sprout/config/compiler/pathscale.hpp index 66298b09..826ef01b 100644 --- a/sprout/config/compiler/pathscale.hpp +++ b/sprout/config/compiler/pathscale.hpp @@ -3,10 +3,13 @@ #if __PATHCC__ >= 4 # define SPROUT_NO_CONSTEXPR +# define SPROUT_NO_DEFAULTED_FUNCTIONS +# define SPROUT_NO_DELETED_FUNCTIONS # define SPROUT_NO_NOEXCEPT # define SPROUT_NO_TEMPLATE_ALIASES # define SPROUT_NO_USER_DEFINED_LITERALS # define SPROUT_NO_DELEGATING_CONSTRUCTORS +# define SPROUT_NO_UNICODE_LITERALS #endif #endif // #ifndef SPROUT_CONFIG_COMPILER_PATHSCALE_HPP diff --git a/sprout/config/compiler/pgi.hpp b/sprout/config/compiler/pgi.hpp index 2879a552..c9a2fac3 100644 --- a/sprout/config/compiler/pgi.hpp +++ b/sprout/config/compiler/pgi.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_PGI_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_PGI_HPP diff --git a/sprout/config/compiler/sunpro_cc.hpp b/sprout/config/compiler/sunpro_cc.hpp index 1f3133c8..b0d458fe 100644 --- a/sprout/config/compiler/sunpro_cc.hpp +++ b/sprout/config/compiler/sunpro_cc.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_SUNPRO_CC_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_SUNPRO_CC_HPP diff --git a/sprout/config/compiler/vacpp.hpp b/sprout/config/compiler/vacpp.hpp index d08149f6..a95b07f7 100644 --- a/sprout/config/compiler/vacpp.hpp +++ b/sprout/config/compiler/vacpp.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_VACPP_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_VACPP_HPP diff --git a/sprout/config/compiler/visualc.hpp b/sprout/config/compiler/visualc.hpp index e7ba4847..4dfec04b 100644 --- a/sprout/config/compiler/visualc.hpp +++ b/sprout/config/compiler/visualc.hpp @@ -2,9 +2,12 @@ #define SPROUT_CONFIG_COMPILER_VISUALC_HPP #define SPROUT_NO_CONSTEXPR +#define SPROUT_NO_DEFAULTED_FUNCTIONS +#define SPROUT_NO_DELETED_FUNCTIONS #define SPROUT_NO_NOEXCEPT #define SPROUT_NO_TEMPLATE_ALIASES #define SPROUT_NO_USER_DEFINED_LITERALS #define SPROUT_NO_DELEGATING_CONSTRUCTORS +#define SPROUT_NO_UNICODE_LITERALS #endif // #ifndef SPROUT_CONFIG_COMPILER_VISUALC_HPP diff --git a/sprout/config/suffix.hpp b/sprout/config/suffix.hpp index f70c6903..1cac8d53 100644 --- a/sprout/config/suffix.hpp +++ b/sprout/config/suffix.hpp @@ -17,6 +17,20 @@ # define SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(EXPR) = EXPR #endif // #ifndef SPROUT_CONFIG_DISABLE_CONSTEXPR +#ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS +# 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 {} +#endif // #ifndef SPROUT_CONFIG_DISABLE_DEFAULTED_FUNCTIONS + +#ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS +# define SPROUT_DELETED_FUNCTION_DECL = delete; +#else // #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS +# define SPROUT_DELETED_FUNCTION_DECL ; +#endif // #ifndef SPROUT_CONFIG_DISABLE_DELETED_FUNCTIONS + #ifndef SPROUT_CONFIG_DISABLE_NOEXCEPT # define SPROUT_NOEXCEPT noexcept # define SPROUT_NOEXCEPT_EXPR(EXPR) noexcept(EXPR) diff --git a/sprout/cstdlib/str_to_int.hpp b/sprout/cstdlib/str_to_int.hpp index 864c8f44..f2b6aca7 100644 --- a/sprout/cstdlib/str_to_int.hpp +++ b/sprout/cstdlib/str_to_int.hpp @@ -20,7 +20,7 @@ namespace sprout { template inline SPROUT_CONSTEXPR IntType str_to_int_impl_1(CStrIterator str, int base, IntType val, IntType x, bool negative) { - return x == static_cast(-1) ? (negative ? -val : val) + return x == static_cast(-1) ? (negative ? -1 * val : val) : val > (std::numeric_limits::max() - x - (negative ? 1 : 0)) / base ? (negative ? std::numeric_limits::min() : std::numeric_limits::max()) : sprout::detail::str_to_int_impl_1( diff --git a/sprout/detail/io/ios_state.hpp b/sprout/detail/io/ios_state.hpp index 34cddeae..075589f6 100644 --- a/sprout/detail/io/ios_state.hpp +++ b/sprout/detail/io/ios_state.hpp @@ -19,6 +19,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + ios_flags_saver& operator=(ios_flags_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_flags_saver(state_type& s) : s_save_(s) @@ -28,7 +30,6 @@ namespace sprout { : s_save_(s) , a_save_(s.flags(a)) {} - ios_flags_saver& operator=(ios_flags_saver const&) = delete; ~ios_flags_saver() { this->restore(); } @@ -44,6 +45,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + ios_precision_saver& operator=(ios_precision_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_precision_saver(state_type& s) : s_save_(s) @@ -53,7 +56,6 @@ namespace sprout { : s_save_(s) , a_save_(s.precision(a)) {} - ios_precision_saver& operator=(ios_precision_saver const&) = delete; ~ios_precision_saver() { this->restore(); } @@ -69,6 +71,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + ios_width_saver& operator=(ios_width_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_width_saver(state_type& s) : s_save_(s) @@ -78,7 +82,6 @@ namespace sprout { : s_save_(s) , a_save_(s.width(a)) {} - ios_width_saver& operator=(ios_width_saver const&) = delete; ~ios_width_saver() { this->restore(); } @@ -95,6 +98,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_iostate_saver& operator=(basic_ios_iostate_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_iostate_saver(state_type& s) : s_save_(s) @@ -106,7 +111,6 @@ namespace sprout { { s.clear(a); } - basic_ios_iostate_saver& operator=(basic_ios_iostate_saver const&) = delete; ~basic_ios_iostate_saver() { this->restore(); } @@ -123,6 +127,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_exception_saver& operator=(basic_ios_exception_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_exception_saver(state_type& s) : s_save_(s) @@ -134,7 +140,6 @@ namespace sprout { { s.exceptions(a); } - basic_ios_exception_saver& operator=(basic_ios_exception_saver const&) = delete; ~basic_ios_exception_saver() { this->restore(); } @@ -151,6 +156,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_tie_saver& operator=(basic_ios_tie_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_tie_saver(state_type& s) : s_save_(s) @@ -160,7 +167,6 @@ namespace sprout { : s_save_(s) , a_save_(s.tie(a)) {} - basic_ios_tie_saver& operator=(basic_ios_tie_saver const&) = delete; ~basic_ios_tie_saver() { this->restore(); } @@ -177,6 +183,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_rdbuf_saver& operator=(basic_ios_rdbuf_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_rdbuf_saver(state_type& s) : s_save_(s) @@ -186,7 +194,6 @@ namespace sprout { : s_save_(s) , a_save_(s.rdbuf(a)) {} - basic_ios_rdbuf_saver& operator=(basic_ios_rdbuf_saver const&) = delete; ~basic_ios_rdbuf_saver() { this->restore(); } @@ -203,6 +210,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_fill_saver& operator=(basic_ios_fill_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_fill_saver(state_type& s) : s_save_(s) @@ -212,7 +221,6 @@ namespace sprout { : s_save_(s) , a_save_(s.fill(a)) {} - basic_ios_fill_saver& operator=(basic_ios_fill_saver const&) = delete; ~basic_ios_fill_saver() { this->restore(); } @@ -229,6 +237,8 @@ namespace sprout { private: state_type& s_save_; aspect_type const a_save_; + private: + basic_ios_locale_saver& operator=(basic_ios_locale_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_locale_saver(state_type& s) : s_save_(s) @@ -238,7 +248,6 @@ namespace sprout { : s_save_(s) , a_save_(s.imbue(a)) {} - basic_ios_locale_saver& operator=(basic_ios_locale_saver const&) = delete; ~basic_ios_locale_saver() { this->restore(); } @@ -256,6 +265,8 @@ namespace sprout { state_type& s_save_; aspect_type const a_save_; index_type const i_save_; + private: + ios_iword_saver& operator=(ios_iword_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_iword_saver(state_type& s, index_type i) : s_save_(s) @@ -269,7 +280,6 @@ namespace sprout { { s.iword(i) = a; } - ios_iword_saver& operator=(ios_iword_saver const&) = delete; ~ios_iword_saver() { this->restore(); } @@ -287,6 +297,8 @@ namespace sprout { state_type& s_save_; aspect_type const a_save_; index_type const i_save_; + private: + ios_pword_saver& operator=(ios_pword_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_pword_saver(state_type& s, index_type i) : s_save_(s) @@ -300,7 +312,6 @@ namespace sprout { { s.pword(i) = a; } - ios_pword_saver& operator=(ios_pword_saver const&) = delete; ~ios_pword_saver() { this->restore(); } @@ -317,6 +328,8 @@ namespace sprout { state_type::fmtflags const a1_save_; std::streamsize const a2_save_; std::streamsize const a3_save_; + private: + ios_base_all_saver& operator=(ios_base_all_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit ios_base_all_saver(state_type& s) : s_save_(s) @@ -324,7 +337,6 @@ namespace sprout { , a2_save_(s.precision()) , a3_save_(s.width()) {} - ios_base_all_saver& operator=(ios_base_all_saver const&) = delete; ~ios_base_all_saver() { this->restore(); } @@ -350,6 +362,8 @@ namespace sprout { std::basic_streambuf* const a7_save_; typename state_type::char_type const a8_save_; std::locale const a9_save_; + private: + basic_ios_all_saver& operator=(basic_ios_all_saver const&) SPROUT_DELETED_FUNCTION_DECL public: explicit basic_ios_all_saver(state_type& s) : s_save_(s) @@ -363,7 +377,6 @@ namespace sprout { , a8_save_(s.fill()) , a9_save_(s.getloc()) {} - basic_ios_all_saver& operator=(basic_ios_all_saver const&) = delete; ~basic_ios_all_saver() { this->restore(); } @@ -389,6 +402,8 @@ namespace sprout { index_type const i_save_; long const a1_save_; void* const a2_save_; + private: + ios_all_word_saver& operator=(ios_all_word_saver const&) SPROUT_DELETED_FUNCTION_DECL public: ios_all_word_saver(state_type& s, index_type i) : s_save_(s) @@ -396,7 +411,6 @@ namespace sprout { , a1_save_(s.iword(i)) , a2_save_(s.pword(i)) {} - ios_all_word_saver& operator=(ios_all_word_saver const&) = delete; ~ios_all_word_saver() { this->restore(); } diff --git a/sprout/functional/bind/bind.hpp b/sprout/functional/bind/bind.hpp index 01d37dac..7f7afd63 100644 --- a/sprout/functional/bind/bind.hpp +++ b/sprout/functional/bind/bind.hpp @@ -59,36 +59,36 @@ namespace sprout { namespace placeholders { namespace { - SPROUT_STATIC_CONSTEXPR sprout::placeholder<1> _1{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<2> _2{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<3> _3{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<4> _4{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<5> _5{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<6> _6{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<7> _7{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<8> _8{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<9> _9{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<10> _10{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<11> _11{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<12> _12{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<13> _13{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<14> _14{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<15> _15{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<16> _16{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<17> _17{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<18> _18{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<19> _19{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<20> _20{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<21> _21{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<22> _22{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<23> _23{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<24> _24{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<25> _25{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<26> _26{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<27> _27{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<28> _28{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<29> _29{}; - SPROUT_STATIC_CONSTEXPR sprout::placeholder<30> _30{}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<1> _1 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<2> _2 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<3> _3 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<4> _4 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<5> _5 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<6> _6 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<7> _7 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<8> _8 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<9> _9 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<10> _10 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<11> _11 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<12> _12 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<13> _13 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<14> _14 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<15> _15 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<16> _16 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<17> _17 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<18> _18 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<19> _19 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<20> _20 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<21> _21 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<22> _22 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<23> _23 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<24> _24 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<25> _25 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<26> _26 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<27> _27 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<28> _28 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<29> _29 = {}; + SPROUT_STATIC_CONSTEXPR sprout::placeholder<30> _30 = {}; } // anonymous-namespace } // namespace placeholders using sprout::placeholders::_1; diff --git a/sprout/functional/polymorphic/address_of.hpp b/sprout/functional/polymorphic/address_of.hpp index 9eec3b96..e149351a 100644 --- a/sprout/functional/polymorphic/address_of.hpp +++ b/sprout/functional/polymorphic/address_of.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::address_of_t address_of_{}; + SPROUT_STATIC_CONSTEXPR sprout::address_of_t address_of_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/assign.hpp b/sprout/functional/polymorphic/assign.hpp index 588b3748..30d608d0 100644 --- a/sprout/functional/polymorphic/assign.hpp +++ b/sprout/functional/polymorphic/assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::assign_t assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::assign_t assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_and.hpp b/sprout/functional/polymorphic/bit_and.hpp index e6b5382b..7a1cdbd7 100644 --- a/sprout/functional/polymorphic/bit_and.hpp +++ b/sprout/functional/polymorphic/bit_and.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_and_t bit_and_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_and_t bit_and_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_and_assign.hpp b/sprout/functional/polymorphic/bit_and_assign.hpp index 8d77af5a..1d1b67ca 100644 --- a/sprout/functional/polymorphic/bit_and_assign.hpp +++ b/sprout/functional/polymorphic/bit_and_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_and_assign_t bit_and_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_and_assign_t bit_and_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_not.hpp b/sprout/functional/polymorphic/bit_not.hpp index bb0e6c43..aff3ad9a 100644 --- a/sprout/functional/polymorphic/bit_not.hpp +++ b/sprout/functional/polymorphic/bit_not.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_not_t bit_not_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_not_t bit_not_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_or.hpp b/sprout/functional/polymorphic/bit_or.hpp index 53def873..dbca9f73 100644 --- a/sprout/functional/polymorphic/bit_or.hpp +++ b/sprout/functional/polymorphic/bit_or.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_or_t bit_or_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_or_t bit_or_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_or_assign.hpp b/sprout/functional/polymorphic/bit_or_assign.hpp index a53731c6..b0094ed0 100644 --- a/sprout/functional/polymorphic/bit_or_assign.hpp +++ b/sprout/functional/polymorphic/bit_or_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_or_assign_t bit_or_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_or_assign_t bit_or_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_xor.hpp b/sprout/functional/polymorphic/bit_xor.hpp index c16507d9..bf640570 100644 --- a/sprout/functional/polymorphic/bit_xor.hpp +++ b/sprout/functional/polymorphic/bit_xor.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_xor_t bit_xor_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_xor_t bit_xor_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/bit_xor_assign.hpp b/sprout/functional/polymorphic/bit_xor_assign.hpp index 43779b4e..b154c833 100644 --- a/sprout/functional/polymorphic/bit_xor_assign.hpp +++ b/sprout/functional/polymorphic/bit_xor_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::bit_xor_assign_t bit_xor_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::bit_xor_assign_t bit_xor_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/call_fun.hpp b/sprout/functional/polymorphic/call_fun.hpp index 7ecdee34..9883450e 100644 --- a/sprout/functional/polymorphic/call_fun.hpp +++ b/sprout/functional/polymorphic/call_fun.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::call_fun_t call_fun_{}; + SPROUT_STATIC_CONSTEXPR sprout::call_fun_t call_fun_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/comma.hpp b/sprout/functional/polymorphic/comma.hpp index 0cb32a77..4bf722b4 100644 --- a/sprout/functional/polymorphic/comma.hpp +++ b/sprout/functional/polymorphic/comma.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::comma_t comma_{}; + SPROUT_STATIC_CONSTEXPR sprout::comma_t comma_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/cond.hpp b/sprout/functional/polymorphic/cond.hpp index b21b26a0..1874c36a 100644 --- a/sprout/functional/polymorphic/cond.hpp +++ b/sprout/functional/polymorphic/cond.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::cond_t cond_{}; + SPROUT_STATIC_CONSTEXPR sprout::cond_t cond_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/dereference.hpp b/sprout/functional/polymorphic/dereference.hpp index 53d09d47..5b4a877f 100644 --- a/sprout/functional/polymorphic/dereference.hpp +++ b/sprout/functional/polymorphic/dereference.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::dereference_t dereference_{}; + SPROUT_STATIC_CONSTEXPR sprout::dereference_t dereference_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/divides.hpp b/sprout/functional/polymorphic/divides.hpp index d84cd4bb..256a5917 100644 --- a/sprout/functional/polymorphic/divides.hpp +++ b/sprout/functional/polymorphic/divides.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::divides_t divides_{}; + SPROUT_STATIC_CONSTEXPR sprout::divides_t divides_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/divides_assign.hpp b/sprout/functional/polymorphic/divides_assign.hpp index f5b66a62..81e4659a 100644 --- a/sprout/functional/polymorphic/divides_assign.hpp +++ b/sprout/functional/polymorphic/divides_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::divides_assign_t divides_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::divides_assign_t divides_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/equal_to.hpp b/sprout/functional/polymorphic/equal_to.hpp index 1f3fcae8..c8f93eca 100644 --- a/sprout/functional/polymorphic/equal_to.hpp +++ b/sprout/functional/polymorphic/equal_to.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::equal_to_t equal_to_{}; + SPROUT_STATIC_CONSTEXPR sprout::equal_to_t equal_to_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/greater.hpp b/sprout/functional/polymorphic/greater.hpp index b2c886c9..fa7e44af 100644 --- a/sprout/functional/polymorphic/greater.hpp +++ b/sprout/functional/polymorphic/greater.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::greater_t greater_{}; + SPROUT_STATIC_CONSTEXPR sprout::greater_t greater_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/greater_equal.hpp b/sprout/functional/polymorphic/greater_equal.hpp index f70d78cd..c0f5cedc 100644 --- a/sprout/functional/polymorphic/greater_equal.hpp +++ b/sprout/functional/polymorphic/greater_equal.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::greater_equal_t greater_equal_{}; + SPROUT_STATIC_CONSTEXPR sprout::greater_equal_t greater_equal_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/less.hpp b/sprout/functional/polymorphic/less.hpp index c3250bcc..efff8943 100644 --- a/sprout/functional/polymorphic/less.hpp +++ b/sprout/functional/polymorphic/less.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::less_t less_{}; + SPROUT_STATIC_CONSTEXPR sprout::less_t less_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/less_equal.hpp b/sprout/functional/polymorphic/less_equal.hpp index d07e6d0c..28653641 100644 --- a/sprout/functional/polymorphic/less_equal.hpp +++ b/sprout/functional/polymorphic/less_equal.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::less_equal_t less_equal_{}; + SPROUT_STATIC_CONSTEXPR sprout::less_equal_t less_equal_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/logical_and.hpp b/sprout/functional/polymorphic/logical_and.hpp index 29d4d870..9730df6b 100644 --- a/sprout/functional/polymorphic/logical_and.hpp +++ b/sprout/functional/polymorphic/logical_and.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::logical_and_t logical_and_{}; + SPROUT_STATIC_CONSTEXPR sprout::logical_and_t logical_and_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/logical_not.hpp b/sprout/functional/polymorphic/logical_not.hpp index 14695e3b..94757d98 100644 --- a/sprout/functional/polymorphic/logical_not.hpp +++ b/sprout/functional/polymorphic/logical_not.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::logical_not_t logical_not_{}; + SPROUT_STATIC_CONSTEXPR sprout::logical_not_t logical_not_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/logical_or.hpp b/sprout/functional/polymorphic/logical_or.hpp index 5e7c7cd0..791a514e 100644 --- a/sprout/functional/polymorphic/logical_or.hpp +++ b/sprout/functional/polymorphic/logical_or.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::logical_or_t logical_or_{}; + SPROUT_STATIC_CONSTEXPR sprout::logical_or_t logical_or_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/mem_ptr.hpp b/sprout/functional/polymorphic/mem_ptr.hpp index 65795b27..397ebc4a 100644 --- a/sprout/functional/polymorphic/mem_ptr.hpp +++ b/sprout/functional/polymorphic/mem_ptr.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::mem_ptr_t mem_ptr_{}; + SPROUT_STATIC_CONSTEXPR sprout::mem_ptr_t mem_ptr_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/member.hpp b/sprout/functional/polymorphic/member.hpp index 628fc32e..4e1a9e6f 100644 --- a/sprout/functional/polymorphic/member.hpp +++ b/sprout/functional/polymorphic/member.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::member_t member_{}; + SPROUT_STATIC_CONSTEXPR sprout::member_t member_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/minus.hpp b/sprout/functional/polymorphic/minus.hpp index 6a8c64b8..b12a7111 100644 --- a/sprout/functional/polymorphic/minus.hpp +++ b/sprout/functional/polymorphic/minus.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::minus_t minus_{}; + SPROUT_STATIC_CONSTEXPR sprout::minus_t minus_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/minus_assign.hpp b/sprout/functional/polymorphic/minus_assign.hpp index 79262d14..9abd0490 100644 --- a/sprout/functional/polymorphic/minus_assign.hpp +++ b/sprout/functional/polymorphic/minus_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::minus_assign_t minus_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::minus_assign_t minus_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/modulus.hpp b/sprout/functional/polymorphic/modulus.hpp index d5cb8aa3..04be858a 100644 --- a/sprout/functional/polymorphic/modulus.hpp +++ b/sprout/functional/polymorphic/modulus.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::modulus_t modulus_{}; + SPROUT_STATIC_CONSTEXPR sprout::modulus_t modulus_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/modulus_assign.hpp b/sprout/functional/polymorphic/modulus_assign.hpp index 99bf5b53..76d8ecbe 100644 --- a/sprout/functional/polymorphic/modulus_assign.hpp +++ b/sprout/functional/polymorphic/modulus_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::modulus_assign_t modulus_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::modulus_assign_t modulus_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/multiplies.hpp b/sprout/functional/polymorphic/multiplies.hpp index 886d376a..0374fd2e 100644 --- a/sprout/functional/polymorphic/multiplies.hpp +++ b/sprout/functional/polymorphic/multiplies.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::multiplies_t multiplies_{}; + SPROUT_STATIC_CONSTEXPR sprout::multiplies_t multiplies_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/multiplies_assign.hpp b/sprout/functional/polymorphic/multiplies_assign.hpp index bea1ad1d..0d3fcad5 100644 --- a/sprout/functional/polymorphic/multiplies_assign.hpp +++ b/sprout/functional/polymorphic/multiplies_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::multiplies_assign_t multiplies_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::multiplies_assign_t multiplies_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/negate.hpp b/sprout/functional/polymorphic/negate.hpp index d620c10e..96a57b3b 100644 --- a/sprout/functional/polymorphic/negate.hpp +++ b/sprout/functional/polymorphic/negate.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::negate_t negate_{}; + SPROUT_STATIC_CONSTEXPR sprout::negate_t negate_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/not_equal_to.hpp b/sprout/functional/polymorphic/not_equal_to.hpp index 0cf4af8b..9c366007 100644 --- a/sprout/functional/polymorphic/not_equal_to.hpp +++ b/sprout/functional/polymorphic/not_equal_to.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::not_equal_to_t not_equal_to_{}; + SPROUT_STATIC_CONSTEXPR sprout::not_equal_to_t not_equal_to_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/plus.hpp b/sprout/functional/polymorphic/plus.hpp index fa2d20f1..3af5f90b 100644 --- a/sprout/functional/polymorphic/plus.hpp +++ b/sprout/functional/polymorphic/plus.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::plus_t plus_{}; + SPROUT_STATIC_CONSTEXPR sprout::plus_t plus_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/plus_assign.hpp b/sprout/functional/polymorphic/plus_assign.hpp index b4ea2110..e4467ab4 100644 --- a/sprout/functional/polymorphic/plus_assign.hpp +++ b/sprout/functional/polymorphic/plus_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::plus_assign_t plus_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::plus_assign_t plus_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/posite.hpp b/sprout/functional/polymorphic/posite.hpp index b927f444..752916d3 100644 --- a/sprout/functional/polymorphic/posite.hpp +++ b/sprout/functional/polymorphic/posite.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::posite_t posite_{}; + SPROUT_STATIC_CONSTEXPR sprout::posite_t posite_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/post_dec.hpp b/sprout/functional/polymorphic/post_dec.hpp index 8b888b07..8a743ff0 100644 --- a/sprout/functional/polymorphic/post_dec.hpp +++ b/sprout/functional/polymorphic/post_dec.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::post_dec_t post_dec_{}; + SPROUT_STATIC_CONSTEXPR sprout::post_dec_t post_dec_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/post_inc.hpp b/sprout/functional/polymorphic/post_inc.hpp index 73391237..90788d3d 100644 --- a/sprout/functional/polymorphic/post_inc.hpp +++ b/sprout/functional/polymorphic/post_inc.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::post_inc_t post_inc_{}; + SPROUT_STATIC_CONSTEXPR sprout::post_inc_t post_inc_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/pre_dec.hpp b/sprout/functional/polymorphic/pre_dec.hpp index 168479dd..27886faf 100644 --- a/sprout/functional/polymorphic/pre_dec.hpp +++ b/sprout/functional/polymorphic/pre_dec.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::pre_dec_t pre_dec_{}; + SPROUT_STATIC_CONSTEXPR sprout::pre_dec_t pre_dec_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/pre_inc.hpp b/sprout/functional/polymorphic/pre_inc.hpp index 7ed0f5b4..e3daaa3b 100644 --- a/sprout/functional/polymorphic/pre_inc.hpp +++ b/sprout/functional/polymorphic/pre_inc.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::pre_inc_t pre_inc_{}; + SPROUT_STATIC_CONSTEXPR sprout::pre_inc_t pre_inc_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/shift_left.hpp b/sprout/functional/polymorphic/shift_left.hpp index 08543830..5c7032be 100644 --- a/sprout/functional/polymorphic/shift_left.hpp +++ b/sprout/functional/polymorphic/shift_left.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::shift_left_t shift_left_{}; + SPROUT_STATIC_CONSTEXPR sprout::shift_left_t shift_left_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/shift_left_assign.hpp b/sprout/functional/polymorphic/shift_left_assign.hpp index 83be1784..31f7726b 100644 --- a/sprout/functional/polymorphic/shift_left_assign.hpp +++ b/sprout/functional/polymorphic/shift_left_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::shift_left_assign_t shift_left_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::shift_left_assign_t shift_left_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/shift_right.hpp b/sprout/functional/polymorphic/shift_right.hpp index 75622875..a29cc253 100644 --- a/sprout/functional/polymorphic/shift_right.hpp +++ b/sprout/functional/polymorphic/shift_right.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::shift_right_t shift_right_{}; + SPROUT_STATIC_CONSTEXPR sprout::shift_right_t shift_right_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/shift_right_assign.hpp b/sprout/functional/polymorphic/shift_right_assign.hpp index aa8bbf49..5319c30d 100644 --- a/sprout/functional/polymorphic/shift_right_assign.hpp +++ b/sprout/functional/polymorphic/shift_right_assign.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::shift_right_assign_t shift_right_assign_{}; + SPROUT_STATIC_CONSTEXPR sprout::shift_right_assign_t shift_right_assign_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/polymorphic/subscript.hpp b/sprout/functional/polymorphic/subscript.hpp index 2fbb9858..3ca3a6a8 100644 --- a/sprout/functional/polymorphic/subscript.hpp +++ b/sprout/functional/polymorphic/subscript.hpp @@ -21,7 +21,7 @@ namespace sprout { } }; namespace { - SPROUT_STATIC_CONSTEXPR sprout::subscript_t subscript_{}; + SPROUT_STATIC_CONSTEXPR sprout::subscript_t subscript_ = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/functional/ref.hpp b/sprout/functional/ref.hpp index e5646e73..27ffb812 100644 --- a/sprout/functional/ref.hpp +++ b/sprout/functional/ref.hpp @@ -137,12 +137,13 @@ namespace sprout { typedef T type; private: T* t_; + private: + reference_wrapper(T&&) SPROUT_DELETED_FUNCTION_DECL public: // construct/copy/destroy SPROUT_CONSTEXPR reference_wrapper(T& t) SPROUT_NOEXCEPT : t_(&t) {} - reference_wrapper(T&&) = delete; reference_wrapper(reference_wrapper const&) SPROUT_NOEXCEPT = default; // assignment reference_wrapper& operator=(reference_wrapper const&) SPROUT_NOEXCEPT = default; @@ -179,9 +180,9 @@ namespace sprout { return sprout::reference_wrapper(t); } template - void ref(T const&&) = delete; + void ref(T const&&) SPROUT_DELETED_FUNCTION_DECL template - void cref(T const&&) = delete; + void cref(T const&&) SPROUT_DELETED_FUNCTION_DECL template inline SPROUT_CONSTEXPR sprout::reference_wrapper ref(sprout::reference_wrapper t) SPROUT_NOEXCEPT { diff --git a/sprout/io.hpp b/sprout/io.hpp index 669a198c..3018ef99 100644 --- a/sprout/io.hpp +++ b/sprout/io.hpp @@ -148,14 +148,14 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR sprout::io::flags::boolean_flag showpos = true; SPROUT_STATIC_CONSTEXPR sprout::io::flags::boolean_flag uppercase = true; SPROUT_STATIC_CONSTEXPR sprout::io::flags::boolean_flag skipws = true; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag right{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag left{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag internal{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag dec{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag hex{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag oct{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag fixed{}; - SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag scientific{}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag right = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag left = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag internal = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag dec = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag hex = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag oct = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag fixed = {}; + SPROUT_STATIC_CONSTEXPR sprout::io::flags::field_flag scientific = {}; // // precision @@ -520,7 +520,9 @@ namespace sprout { // // root // - SPROUT_STATIC_CONSTEXPR sprout::io::root_t root{}; + namespace { + SPROUT_STATIC_CONSTEXPR sprout::io::root_t root = {}; + } // anonymous-namespace template inline SPROUT_CONSTEXPR auto diff --git a/sprout/logic/tribool/io.hpp b/sprout/logic/tribool/io.hpp index 998da98e..5b0a2a0e 100644 --- a/sprout/logic/tribool/io.hpp +++ b/sprout/logic/tribool/io.hpp @@ -27,6 +27,7 @@ namespace sprout { get_default_indeterminate_name() { return L"indeterminate"; } +#ifndef SPROUT_NO_UNICODE_LITERALS template<> inline std::basic_string get_default_indeterminate_name() { @@ -37,6 +38,7 @@ namespace sprout { get_default_indeterminate_name() { return U"indeterminate"; } +#endif // // indeterminate_name diff --git a/sprout/none.hpp b/sprout/none.hpp index 3cd8fa22..2a793b7c 100644 --- a/sprout/none.hpp +++ b/sprout/none.hpp @@ -10,7 +10,7 @@ namespace sprout { // struct none_t {}; namespace { - SPROUT_STATIC_CONSTEXPR none_t none{}; + SPROUT_STATIC_CONSTEXPR none_t none = {}; } // anonymous-namespace } // namespace sprout diff --git a/sprout/random/detail/const_mod.hpp b/sprout/random/detail/const_mod.hpp index 440b0284..7d80f032 100644 --- a/sprout/random/detail/const_mod.hpp +++ b/sprout/random/detail/const_mod.hpp @@ -209,7 +209,7 @@ namespace sprout { ; } private: - const_mod() = delete; + const_mod() SPROUT_DELETED_FUNCTION_DECL }; } // namespace detail } // namespace random diff --git a/sprout/range/adaptor/adapted_dropped.hpp b/sprout/range/adaptor/adapted_dropped.hpp index 03e59132..b47f3735 100644 --- a/sprout/range/adaptor/adapted_dropped.hpp +++ b/sprout/range/adaptor/adapted_dropped.hpp @@ -48,7 +48,7 @@ namespace sprout { // adapted_dropped // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_dropped_forwarder adapted_dropped{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_dropped_forwarder adapted_dropped = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/adapted_dropped_end.hpp b/sprout/range/adaptor/adapted_dropped_end.hpp index 94c65313..e5740868 100644 --- a/sprout/range/adaptor/adapted_dropped_end.hpp +++ b/sprout/range/adaptor/adapted_dropped_end.hpp @@ -48,7 +48,7 @@ namespace sprout { // adapted_dropped_end // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_dropped_end_forwarder adapted_dropped_end{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_dropped_end_forwarder adapted_dropped_end = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/adapted_offset.hpp b/sprout/range/adaptor/adapted_offset.hpp index 2144101d..fc9202e0 100644 --- a/sprout/range/adaptor/adapted_offset.hpp +++ b/sprout/range/adaptor/adapted_offset.hpp @@ -78,7 +78,7 @@ namespace sprout { // adapted_offset // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_offset_forwarder adapted_offset{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_offset_forwarder adapted_offset = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/adapted_taken.hpp b/sprout/range/adaptor/adapted_taken.hpp index b3e0de14..4b235de4 100644 --- a/sprout/range/adaptor/adapted_taken.hpp +++ b/sprout/range/adaptor/adapted_taken.hpp @@ -48,7 +48,7 @@ namespace sprout { // adapted_taken // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_taken_forwarder adapted_taken{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_taken_forwarder adapted_taken = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/adapted_taken_end.hpp b/sprout/range/adaptor/adapted_taken_end.hpp index 4cc7a819..4b171f9d 100644 --- a/sprout/range/adaptor/adapted_taken_end.hpp +++ b/sprout/range/adaptor/adapted_taken_end.hpp @@ -48,7 +48,7 @@ namespace sprout { // adapted_taken_end // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_taken_end_forwarder adapted_taken_end{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_taken_end_forwarder adapted_taken_end = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/adapted_window.hpp b/sprout/range/adaptor/adapted_window.hpp index 86bd4429..7878db9e 100644 --- a/sprout/range/adaptor/adapted_window.hpp +++ b/sprout/range/adaptor/adapted_window.hpp @@ -78,7 +78,7 @@ namespace sprout { // adapted_window // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_window_forwarder adapted_window{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::adapted_window_forwarder adapted_window = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/alternated.hpp b/sprout/range/adaptor/alternated.hpp index 7f119b7e..6c172c25 100644 --- a/sprout/range/adaptor/alternated.hpp +++ b/sprout/range/adaptor/alternated.hpp @@ -98,7 +98,7 @@ namespace sprout { // alternated // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::alternated_forwarder alternated{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::alternated_forwarder alternated = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/amplitude_spectrum.hpp b/sprout/range/adaptor/amplitude_spectrum.hpp index 5f6a860b..80bb601d 100644 --- a/sprout/range/adaptor/amplitude_spectrum.hpp +++ b/sprout/range/adaptor/amplitude_spectrum.hpp @@ -72,7 +72,7 @@ namespace sprout { // amplitude_spectrum // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::amplitude_spectrum_forwarder amplitude_spectrum{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::amplitude_spectrum_forwarder amplitude_spectrum = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/blanked.hpp b/sprout/range/adaptor/blanked.hpp index 35e0d0cf..369f630c 100644 --- a/sprout/range/adaptor/blanked.hpp +++ b/sprout/range/adaptor/blanked.hpp @@ -134,7 +134,7 @@ namespace sprout { // blanked // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::blanked_forwarder blanked{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::blanked_forwarder blanked = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/clamped.hpp b/sprout/range/adaptor/clamped.hpp index d663d1b5..8873f8b3 100644 --- a/sprout/range/adaptor/clamped.hpp +++ b/sprout/range/adaptor/clamped.hpp @@ -111,7 +111,7 @@ namespace sprout { // clamped // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::clamped_forwarder clamped{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::clamped_forwarder clamped = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/copied.hpp b/sprout/range/adaptor/copied.hpp index 740845fc..afc2dcb5 100644 --- a/sprout/range/adaptor/copied.hpp +++ b/sprout/range/adaptor/copied.hpp @@ -77,7 +77,7 @@ namespace sprout { // copied // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::copied_forwarder copied{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::copied_forwarder copied = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/counting.hpp b/sprout/range/adaptor/counting.hpp index e22871ac..70c2bff9 100644 --- a/sprout/range/adaptor/counting.hpp +++ b/sprout/range/adaptor/counting.hpp @@ -118,7 +118,7 @@ namespace sprout { // counting // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::counting_forwarder counting{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::counting_forwarder counting = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/deep_copied.hpp b/sprout/range/adaptor/deep_copied.hpp index 281e9ab8..c3598696 100644 --- a/sprout/range/adaptor/deep_copied.hpp +++ b/sprout/range/adaptor/deep_copied.hpp @@ -17,7 +17,7 @@ namespace sprout { // deep_copied // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::deep_copied_forwarder deep_copied{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::deep_copied_forwarder deep_copied = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/dft.hpp b/sprout/range/adaptor/dft.hpp index 54609757..4d328d73 100644 --- a/sprout/range/adaptor/dft.hpp +++ b/sprout/range/adaptor/dft.hpp @@ -52,7 +52,7 @@ namespace sprout { // dft // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::dft_forwarder dft{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::dft_forwarder dft = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/dropped.hpp b/sprout/range/adaptor/dropped.hpp index 8278d075..2c7c91ea 100644 --- a/sprout/range/adaptor/dropped.hpp +++ b/sprout/range/adaptor/dropped.hpp @@ -47,7 +47,7 @@ namespace sprout { // dropped // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::dropped_forwarder dropped{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::dropped_forwarder dropped = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/dropped_end.hpp b/sprout/range/adaptor/dropped_end.hpp index 3bd98de8..b489817c 100644 --- a/sprout/range/adaptor/dropped_end.hpp +++ b/sprout/range/adaptor/dropped_end.hpp @@ -47,7 +47,7 @@ namespace sprout { // dropped_end // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::dropped_end_forwarder dropped_end{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::dropped_end_forwarder dropped_end = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/filtered.hpp b/sprout/range/adaptor/filtered.hpp index 9b65eebf..58c97e7f 100644 --- a/sprout/range/adaptor/filtered.hpp +++ b/sprout/range/adaptor/filtered.hpp @@ -86,7 +86,7 @@ namespace sprout { // filtered // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::filtered_forwarder filtered{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::filtered_forwarder filtered = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/idft.hpp b/sprout/range/adaptor/idft.hpp index d0a7fac2..f549d65d 100644 --- a/sprout/range/adaptor/idft.hpp +++ b/sprout/range/adaptor/idft.hpp @@ -52,7 +52,7 @@ namespace sprout { // idft // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::idft_forwarder idft{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::idft_forwarder idft = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/indexed.hpp b/sprout/range/adaptor/indexed.hpp index 3ccf4fce..265b8de2 100644 --- a/sprout/range/adaptor/indexed.hpp +++ b/sprout/range/adaptor/indexed.hpp @@ -86,7 +86,7 @@ namespace sprout { // indexed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::indexed_forwarder indexed{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::indexed_forwarder indexed = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/jointed.hpp b/sprout/range/adaptor/jointed.hpp index 5252cf8a..4af8fb43 100644 --- a/sprout/range/adaptor/jointed.hpp +++ b/sprout/range/adaptor/jointed.hpp @@ -93,7 +93,7 @@ namespace sprout { // jointed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::jointed_forwarder jointed{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::jointed_forwarder jointed = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/offset.hpp b/sprout/range/adaptor/offset.hpp index d155cc32..fda6b46c 100644 --- a/sprout/range/adaptor/offset.hpp +++ b/sprout/range/adaptor/offset.hpp @@ -71,7 +71,7 @@ namespace sprout { // offset // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::offset_forwarder offset{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::offset_forwarder offset = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/outdirected.hpp b/sprout/range/adaptor/outdirected.hpp index 9734486b..11a97992 100644 --- a/sprout/range/adaptor/outdirected.hpp +++ b/sprout/range/adaptor/outdirected.hpp @@ -52,7 +52,7 @@ namespace sprout { // outdirected // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::outdirected_forwarder outdirected{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::outdirected_forwarder outdirected = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/phase_spectrum.hpp b/sprout/range/adaptor/phase_spectrum.hpp index ef6c0c09..39aeeb52 100644 --- a/sprout/range/adaptor/phase_spectrum.hpp +++ b/sprout/range/adaptor/phase_spectrum.hpp @@ -72,7 +72,7 @@ namespace sprout { // phase_spectrum // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::phase_spectrum_forwarder phase_spectrum{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::phase_spectrum_forwarder phase_spectrum = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/piped.hpp b/sprout/range/adaptor/piped.hpp index 86c639ef..3d9a9325 100644 --- a/sprout/range/adaptor/piped.hpp +++ b/sprout/range/adaptor/piped.hpp @@ -111,7 +111,7 @@ namespace sprout { // piped // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::piped_forwarder piped{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::piped_forwarder piped = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/replaced.hpp b/sprout/range/adaptor/replaced.hpp index ed5101af..690250c6 100644 --- a/sprout/range/adaptor/replaced.hpp +++ b/sprout/range/adaptor/replaced.hpp @@ -108,7 +108,7 @@ namespace sprout { // replaced // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::replaced_forwarder replaced{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::replaced_forwarder replaced = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/replaced_if.hpp b/sprout/range/adaptor/replaced_if.hpp index f017bf94..f73a3b0b 100644 --- a/sprout/range/adaptor/replaced_if.hpp +++ b/sprout/range/adaptor/replaced_if.hpp @@ -111,7 +111,7 @@ namespace sprout { // replaced_if // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::replaced_if_forwarder replaced_if{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::replaced_if_forwarder replaced_if = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/reversed.hpp b/sprout/range/adaptor/reversed.hpp index fcab0c49..698ff44a 100644 --- a/sprout/range/adaptor/reversed.hpp +++ b/sprout/range/adaptor/reversed.hpp @@ -52,7 +52,7 @@ namespace sprout { // reversed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::reversed_forwarder reversed{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::reversed_forwarder reversed = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/sawtooth_wave.hpp b/sprout/range/adaptor/sawtooth_wave.hpp index bd73be9e..2a9a8cc2 100644 --- a/sprout/range/adaptor/sawtooth_wave.hpp +++ b/sprout/range/adaptor/sawtooth_wave.hpp @@ -118,7 +118,7 @@ namespace sprout { // sawtooth_wave // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::sawtooth_wave_forwarder sawtooth_wave{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::sawtooth_wave_forwarder sawtooth_wave = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/sinusoidal.hpp b/sprout/range/adaptor/sinusoidal.hpp index 56942104..39da39db 100644 --- a/sprout/range/adaptor/sinusoidal.hpp +++ b/sprout/range/adaptor/sinusoidal.hpp @@ -118,7 +118,7 @@ namespace sprout { // sinusoidal // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::sinusoidal_forwarder sinusoidal{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::sinusoidal_forwarder sinusoidal = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/size_enumed.hpp b/sprout/range/adaptor/size_enumed.hpp index 924f477e..c0fd2a30 100644 --- a/sprout/range/adaptor/size_enumed.hpp +++ b/sprout/range/adaptor/size_enumed.hpp @@ -126,7 +126,7 @@ namespace sprout { // size_enumed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::size_enumed_forwarder size_enumed{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::size_enumed_forwarder size_enumed = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/square_wave.hpp b/sprout/range/adaptor/square_wave.hpp index 10bae837..b19f9ae1 100644 --- a/sprout/range/adaptor/square_wave.hpp +++ b/sprout/range/adaptor/square_wave.hpp @@ -127,7 +127,7 @@ namespace sprout { // square_wave // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::square_wave_forwarder square_wave{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::square_wave_forwarder square_wave = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/steps.hpp b/sprout/range/adaptor/steps.hpp index 895d491f..f5c540a2 100644 --- a/sprout/range/adaptor/steps.hpp +++ b/sprout/range/adaptor/steps.hpp @@ -102,7 +102,7 @@ namespace sprout { // steps // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::steps_forwarder steps{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::steps_forwarder steps = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/taken.hpp b/sprout/range/adaptor/taken.hpp index f578c18d..b7851839 100644 --- a/sprout/range/adaptor/taken.hpp +++ b/sprout/range/adaptor/taken.hpp @@ -47,7 +47,7 @@ namespace sprout { // taken // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::taken_forwarder taken{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::taken_forwarder taken = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/taken_end.hpp b/sprout/range/adaptor/taken_end.hpp index 16377f2f..e8ae7cae 100644 --- a/sprout/range/adaptor/taken_end.hpp +++ b/sprout/range/adaptor/taken_end.hpp @@ -47,7 +47,7 @@ namespace sprout { // taken_end // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::taken_end_forwarder taken_end{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::taken_end_forwarder taken_end = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/transformed.hpp b/sprout/range/adaptor/transformed.hpp index dfdcb5a6..9cbdbe97 100644 --- a/sprout/range/adaptor/transformed.hpp +++ b/sprout/range/adaptor/transformed.hpp @@ -158,7 +158,7 @@ namespace sprout { // transformed // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::transformed_forwarder transformed{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::transformed_forwarder transformed = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/triangle_wave.hpp b/sprout/range/adaptor/triangle_wave.hpp index c76fb259..5a81b4e7 100644 --- a/sprout/range/adaptor/triangle_wave.hpp +++ b/sprout/range/adaptor/triangle_wave.hpp @@ -118,7 +118,7 @@ namespace sprout { // triangle_wave // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::triangle_wave_forwarder triangle_wave{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::triangle_wave_forwarder triangle_wave = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/valued.hpp b/sprout/range/adaptor/valued.hpp index b154c2a1..cd8567ed 100644 --- a/sprout/range/adaptor/valued.hpp +++ b/sprout/range/adaptor/valued.hpp @@ -83,7 +83,7 @@ namespace sprout { // valued // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::valued_forwarder valued{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::valued_forwarder valued = {}; } // anonymous-namespace // diff --git a/sprout/range/adaptor/window.hpp b/sprout/range/adaptor/window.hpp index 506838b7..f2d5ba04 100644 --- a/sprout/range/adaptor/window.hpp +++ b/sprout/range/adaptor/window.hpp @@ -71,7 +71,7 @@ namespace sprout { // window // namespace { - SPROUT_STATIC_CONSTEXPR sprout::adaptors::window_forwarder window{}; + SPROUT_STATIC_CONSTEXPR sprout::adaptors::window_forwarder window = {}; } // anonymous-namespace // diff --git a/sprout/tuple/tuple/ignore.hpp b/sprout/tuple/tuple/ignore.hpp index 3d0a6f43..963e8a29 100644 --- a/sprout/tuple/tuple/ignore.hpp +++ b/sprout/tuple/tuple/ignore.hpp @@ -18,7 +18,7 @@ namespace sprout { // // ignore // - SPROUT_STATIC_CONSTEXPR ignore_t ignore{}; + SPROUT_STATIC_CONSTEXPR ignore_t ignore = {}; } // namespace tuples using sprout::tuples::ignore_t; diff --git a/sprout/type_traits/inherit_if_xxx.hpp b/sprout/type_traits/inherit_if_xxx.hpp index 824e9882..4998f5c2 100644 --- a/sprout/type_traits/inherit_if_xxx.hpp +++ b/sprout/type_traits/inherit_if_xxx.hpp @@ -1,6 +1,9 @@ #ifndef SPROUT_TYPE_TRAITS_INHERIT_IF_XXX_HPP #define SPROUT_TYPE_TRAITS_INHERIT_IF_XXX_HPP +#if defined(_MSC_VER) +# include +#endif #include #include #include @@ -38,6 +41,25 @@ // SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF // SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF_LAZY // +#if defined(_MSC_VER) +#define SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF(NAME, ALIAS, CONSTANT) \ + SPROUT_HAS_XXX_VALUE_DEF(SPROUT_PP_CAT(SPROUT_PP_CAT(sprout_inherit_if_xxx_constant_def_impl_has_, CONSTANT), __LINE__), CONSTANT); \ + template \ + struct NAME {}; \ + template \ + struct NAME< \ + T, \ + typename std::enable_if::value>::type \ + > { \ + public: \ + SPROUT_STATIC_CONSTEXPR std::size_t ALIAS = T::CONSTANT; \ + }; \ + template \ + SPROUT_CONSTEXPR_OR_CONST std::size_t NAME< \ + T, \ + typename std::enable_if::value>::type \ + >::ALIAS +#else #define SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF(NAME, ALIAS, CONSTANT) \ SPROUT_HAS_XXX_VALUE_DEF(SPROUT_PP_CAT(SPROUT_PP_CAT(sprout_inherit_if_xxx_constant_def_impl_has_, CONSTANT), __LINE__), CONSTANT); \ template \ @@ -55,6 +77,7 @@ T, \ typename std::enable_if::value>::type \ >::ALIAS +#endif #define SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF_LAZY(ALIAS, CONSTANT) \ SPROUT_INHERIT_ALIAS_IF_XXX_CONSTANT_DEF(SPROUT_PP_CAT(SPROUT_PP_CAT(SPROUT_PP_CAT(inherit_, ALIAS), _if_), CONSTANT), ALIAS, CONSTANT) diff --git a/sprout/utility/forward.hpp b/sprout/utility/forward.hpp index 4c178d2d..650b3eb1 100644 --- a/sprout/utility/forward.hpp +++ b/sprout/utility/forward.hpp @@ -15,7 +15,7 @@ namespace sprout { } template inline SPROUT_CONSTEXPR T&& - forward(typename std::remove_reference::type&& t) SPROUT_NOEXCEPT = delete; + forward(typename std::remove_reference::type&& t) SPROUT_NOEXCEPT SPROUT_DELETED_FUNCTION_DECL } // namespace sprout #endif // #ifndef SPROUT_UTILITY_FORWARD_HPP diff --git a/sprout/utility/lvalue_forward.hpp b/sprout/utility/lvalue_forward.hpp index 0b4bd983..8010e4f9 100644 --- a/sprout/utility/lvalue_forward.hpp +++ b/sprout/utility/lvalue_forward.hpp @@ -18,7 +18,7 @@ namespace sprout { } template inline SPROUT_CONSTEXPR typename sprout::lvalue_reference::type - lvalue_forward(typename std::remove_reference::type&& t) = delete; + lvalue_forward(typename std::remove_reference::type&& t) SPROUT_DELETED_FUNCTION_DECL } // namespace sprout #endif // #ifndef SPROUT_UTILITY_LVALUE_FORWARD_HPP diff --git a/sprout/utility/noncopyable.hpp b/sprout/utility/noncopyable.hpp index 7c039870..fb242f7d 100644 --- a/sprout/utility/noncopyable.hpp +++ b/sprout/utility/noncopyable.hpp @@ -6,10 +6,12 @@ namespace sprout { namespace noncopyable_ { class noncopyable { - public: - SPROUT_CONSTEXPR noncopyable() = default; - noncopyable(noncopyable const&) = delete; - noncopyable& operator=(noncopyable const&) = delete; + protected: + SPROUT_CONSTEXPR noncopyable() SPROUT_DEFAULTED_DEFAULT_CONSTRUCTOR_DECL + ~noncopyable() SPROUT_DEFAULTED_DESTRUCTOR_DECL + private: + noncopyable(noncopyable const&) SPROUT_DELETED_FUNCTION_DECL + noncopyable& operator=(noncopyable const&) SPROUT_DELETED_FUNCTION_DECL }; } // namespace noncopyable_ // diff --git a/sprout/uuid/detail/table.hpp b/sprout/uuid/detail/table.hpp index 4bd65b0b..d136212e 100644 --- a/sprout/uuid/detail/table.hpp +++ b/sprout/uuid/detail/table.hpp @@ -38,6 +38,7 @@ namespace sprout { ; SPROUT_CONSTEXPR_OR_CONST wchar_t sprout::uuids::detail::digits::dash; +#ifndef SPROUT_NO_UNICODE_LITERALS template<> struct digits { public: @@ -63,6 +64,7 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789abcdefABCDEF")) ; SPROUT_CONSTEXPR_OR_CONST char32_t sprout::uuids::detail::digits::dash; +#endif template struct values; diff --git a/sprout/weed/detail/bdigits.hpp b/sprout/weed/detail/bdigits.hpp index 31de2db9..7968d925 100644 --- a/sprout/weed/detail/bdigits.hpp +++ b/sprout/weed/detail/bdigits.hpp @@ -37,6 +37,7 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"01")) ; +#ifndef SPROUT_NO_UNICODE_LITERALS template<> struct bdigits { public: @@ -58,6 +59,7 @@ namespace sprout { SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::bdigits::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"01")) ; +#endif template struct bvalues; diff --git a/sprout/weed/detail/digits.hpp b/sprout/weed/detail/digits.hpp index 79e2543c..45fade7f 100644 --- a/sprout/weed/detail/digits.hpp +++ b/sprout/weed/detail/digits.hpp @@ -37,6 +37,7 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"0123456789")) ; +#ifndef SPROUT_NO_UNICODE_LITERALS template<> struct digits { public: @@ -58,6 +59,7 @@ namespace sprout { SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::digits::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789")) ; +#endif template struct values; diff --git a/sprout/weed/detail/odigits.hpp b/sprout/weed/detail/odigits.hpp index 09d40d35..f787937e 100644 --- a/sprout/weed/detail/odigits.hpp +++ b/sprout/weed/detail/odigits.hpp @@ -37,6 +37,7 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"01234567")) ; +#ifndef SPROUT_NO_UNICODE_LITERALS template<> struct odigits { public: @@ -58,6 +59,7 @@ namespace sprout { SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::odigits::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"01234567")) ; +#endif template struct ovalues; diff --git a/sprout/weed/detail/xdigits.hpp b/sprout/weed/detail/xdigits.hpp index 98764396..2fccfcd0 100644 --- a/sprout/weed/detail/xdigits.hpp +++ b/sprout/weed/detail/xdigits.hpp @@ -37,6 +37,7 @@ namespace sprout { SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(L"0123456789abcdefABCDEF")) ; +#ifndef SPROUT_NO_UNICODE_LITERALS template<> struct xdigits { public: @@ -58,6 +59,7 @@ namespace sprout { SPROUT_CONSTEXPR_OR_CONST sprout::basic_string sprout::weed::detail::xdigits::table SPROUT_STATIC_CONSTEXPR_DATA_MEMBER_OUTER(sprout::to_string(U"0123456789abcdefABCDEF")) ; +#endif template struct xvalues;