2012-03-21 3 views
1

テンプレートクラスの不要なデータ型を処理するうえで、「良い方法」とは何でしょうか?テンプレートクラスの優れた実践と望ましくない型宣言の処理

数値乗算を行うテンプレート化されたクラスの関数がありますが、そのクラスのドライバファイルには、タイプstringのクラスのインスタンスが宣言されています。

私は、これがドライバファイルを作成している人にとっては「個人的な問題」であり、ヘッダ/実装ファイルには適切な関数プロローグが必要であるという議論がありました。

この問題に関してテンプレートで使用されている一般的な方法があるのだろうかと思います。クラスの型を調べる前に、それらを扱う(私は、テンプレートの目的を破ると思います)、または特定の型の振る舞いを定義しますか(これは目的の敗北のようですが)?

あなたのコードを正しく文書化して、あなたのクラスを使用するプログラマーに注意を喚起させてください。

+0

これは同じ質問ではありません。http://stackoverflow.com/questions/148373/c-restrict-template-function –

+0

@GuillaumeSchub特定のデータ型を制限する特定のケースでした。私はより広い範囲の質問をしています。このタイプの状況にどのような一般的なプラクティスが適用されているのか疑問に思っています。間違ったデータ型とみなされる可能性があるケースについて説明します。 – skippr

答えて

2

私は一般的にはこれが唯一のあなたはそれが数値だということを保証しましょう、しかしis_signedとis_integerのようなものがタイプについての詳細を確認する必要がありませんしたいプロパティを主張するためにブースト/ C++ 11 static_assertのようなものを使用したいです、あなたが必要な場合/したい場合。

関連する問題