Bonjour,
j'aimerai créer une template class qui réutilise les template parameters d'une autre template class:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
template<typename BitDepth=uint8_t, BitDepth _MAX=UINT8_MAX>
struct RGB {
  static const BitDepth MAX_VALUE = _MAX;
  BitDepth r;
}
 
template<template <typename BitDepth, BitDepth MaxValue> class Pixel>
class ScaleStage {
  protected:
  BitDepth min, max;
  void process(Pixel& p) {
    p->red = MaxValue;
  }
}
 
using RGB8 = RGB<uint8_t, UINT8_MAX>;
using ScaleStage8 = ScaleStage<RGB8>;
Je m'attendais à ce que cela produise cet équivalent:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
struct RGB8 {
  static const char MAX_VALUE = UINT8_MAX;
  char r;
}
 
class ScaleStage8 {
  protected:
  char min, max;
  void process(RGB8& p) {
    p->red = UINT8_MAX;
  }
}
Vous auriez des suggestions pour réussir à réaliser ça?