回答編集履歴

2

appendix

2019/10/19 13:29

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -160,6 +160,8 @@
160
160
 
161
161
  }
162
162
 
163
+ ```
163
164
 
164
165
 
166
+
165
- ```
167
+ おまけ:C++20のコンセプトを利用できるとすっきりします [https://wandbox.org/permlink/phnyEYpsTWhbQtl9](https://wandbox.org/permlink/phnyEYpsTWhbQtl9)

1

refine

2019/10/19 13:29

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- おっしゃる通り、インスタンス化されたテンプレートクラス`Holder<SomeType>`の外部から、そのテンプレート実引数`SomeType`を取り出すことはできません。
5
+ おっしゃる通り、インスタンス化されたテンプレートクラス`Holder<SomeType>`の外部から、そのテンプレート実引数`SomeType`を取り出すことはできません。つまり、その要件そのままでは実装不可能です。
6
6
 
7
7
 
8
8
 
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- 通常は、テンプレートクラスの公開インタフェースとしてテンプレート実引数に対応する型名を公開します。このようなインタフェース設計を前提とすれば、`Holder2<SomeType>`型から`Holder2<SomeType>::value_type`つまり`SomeType`型を取り出せるようになります。
13
+ 一般的な設計としては、テンプレートクラスのテンプレート実引数に対応する型名(`value_type`など)を公開します。このようなインタフェース設計を前提とすれば、`Holder2<SomeType>`型から`Holder2<SomeType>::value_type`つまり`SomeType`型を取り出せるようになります。
14
14
 
15
15
 
16
16