mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-23 20:29:42 +00:00
Further explain.
This commit is contained in:
parent
9588c9bee2
commit
0951c50e40
@ -13,11 +13,21 @@ namespace Numeric {
|
||||
|
||||
/// Stores and retrieves an arbitrary number of fields into an int with arbitrary modulos.
|
||||
///
|
||||
/// E.g. NumericEncoder<8, 3, 14> establishes an encoder and decoder for three fields,
|
||||
/// E.g. NumericCoder<8, 3, 14> establishes an encoder and decoder for three fields,
|
||||
/// the first is modulo 8, the second is modulo 3, the third is modulo 14.
|
||||
///
|
||||
/// NumericEncoder<8, 3, 14>::encode<2>(v, 9) will mutate v so that the third field
|
||||
/// NumericCoder<8, 3, 14>::encode<2>(v, 9) will mutate v so that the third field
|
||||
/// (i.e. field 2) has value 9.
|
||||
///
|
||||
/// The first given field will occupy the least significant part of the target int; e.g.
|
||||
/// a NumericCoder<3, 4, 6> with ::encode<0>(v, 2), ::encode<1>(v, 1) and
|
||||
/// ::encode<2>(v, 5) will have a final value of:
|
||||
///
|
||||
/// [value] 2 +
|
||||
/// [value] 1 * [product of previous field sizes] 3 +
|
||||
/// 5 * 12
|
||||
/// = 65
|
||||
///
|
||||
template <int... Sizes> class NumericCoder {
|
||||
public:
|
||||
/// Modifies @c target to hold @c value at @c index.
|
||||
|
Loading…
Reference in New Issue
Block a user