Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/sfinae26.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Origin: PR c++/46170 // { dg-do compile } namespace util { struct option_value { }; template <class T> struct options_map_impl { typedef T options_struct_type; typedef bool (*opt_func)(const option_value&, options_struct_type&); template <class V, V K> static bool set_member_constant(const option_value&, options_struct_type&, V options_struct_type::*); template <class V, V options_struct_type::*mem, V K> static bool set_member_constant(const option_value& opt, options_struct_type& t) { return set_member_constant<V,K>(opt, t, mem); } }; } struct cflat_options { bool show_precharges; }; typedef util::options_map_impl<cflat_options> options_map_impl_type; class register_options_modifier { typedef options_map_impl_type::opt_func modifier_type; public: register_options_modifier(); register_options_modifier(const char* Mode, const modifier_type COM, const char* h); }; static const register_options_modifier cflat_opt_mod_show_precharges("precharges", &options_map_impl_type::set_member_constant<bool, &cflat_options::show_precharges, true>, "show precharge expressions"), cflat_opt_mod_no_show_precharges("no-" "precharges", &options_map_impl_type::set_member_constant<bool, &cflat_options::show_precharges, false>, "hide precharge expressions");