Bonjour à tous,
Je sais pas si je poste au bon endroit, dites moi si je dois déplacer le message. Voici mon problème: j'ai un bloc d'instructions qui peut lever un ensemble d'exceptions qui n'ont pas forcément de relation d'héritage que je souhaiterait catcher, un truc dans ce goût là:
Je ne sais pas si c'est possible de faire quelque chose avec boost, je suis tombé sur ce site qui parle en gros du même problème mais ils proposent une solution à base de macro. Dans cette discussion, un gars parle d'une solution à base de boost fusion, mais j'avoue ne pas du tout voir comment faire, si vous avez des idées...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 struct exception1 : std::exception {}; struct exception2 : std::exception {}; struct exception3 : std::exception {}; void une_fonction() { //... des instructions typedef vector<exception1, exception2> exception_pool_1; try { //.. des instructions pouvant lever des exceptions de type de exception_pool_1 } catch(/*une ou plusieurs exceptions de exception_pool_1*/) { //rien ou un appel compilant pour tout type de pool_1 } //... des instructions typedef vector<exception1, exception3> exception_pool_2; //... des instructions try { //.. des instructions pouvant lever des exceptions de type de exception_pool_2 } catch(/*une ou plusieurs exceptions de exception_pool_2*/) { //rien ou un appel compilant pour tout type de pool_2 } }