メタプログラミング: 関数定義の代替テンプレート選択基準
この質問では、型の変換能力に基づいてテンプレートを定義する概念について説明します。文字列に。元のコードでは is_arithmetic 型特性を使用していますが、代わりに、その型に対して to_string が定義されているかどうかを評価する基準を使用することが提案されています。挑戦的。次のコードは失敗します:
template
templateenable_if_t template
構造体 has_to_string : std::false_type { }; テンプレート struct has_to_string ()))> > : std::true_type { }; template<typename T, typename = void> struct has_to_string : std::false_type { }; template<typename T> struct has_to_string<T, void_t<decltype(std::to_string(std::declval<T>()))> > : std::true_type { };
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3