私はこのような何かを持っている:テンプレートはビットサイズを指定することによってchar/short/intの間で選択できますか?
template<int SIZE>
struct bin {
private:
public:
struct {
int _value : SIZE;
};
}
はサイズに応じて_valueのデータ型を変更することが可能ですか? SIZEが< = 7の場合、_valueをcharにします。もしそれが> 8で< = 15なら、私はそれを短くしたいと思います。それが< = 31ならば、それを整数にします。
ありがとう、それは私が探していたものです。私が期待したよりもうまくいく – Markus
ある時点では、コンパイルの速度に心配するかもしれません。 –
@ edA-qa mort-ora-y:コンパイルメモリの使用であり、実装は一般に、テンプレートインスタンス化のための固定された最大「再帰深度」を課す。 'bin b;'と書けば、不愉快なことが起きるでしょう。しかし、合理的な数値のみを使用すると仮定すれば、コンパイラは31種類(TU単位)を作成する必要があります。これは、人為的な例を除いて重要な負担となることはまずありません。私はオーバーヘッドに数桁の悪化をもたらす標準テンプレートがあると思います。 –