Hallo zusammen,
wie muss eine C++ Template Funktion programmiert werden, damit der
Compiler keine Warnings mehr auswirft?
Ich habe eine Template Funktion der eine Variable als Referenz übergeben
wird. Diese Variable wird in der Funktion geändert.
Die Funktion sieht wiefolg aus:
1 | // Klassenvariablen
|
2 | uint32_t flashAddresse;
|
3 | uint8_t sektorNummer;
|
4 |
|
5 | template<class T>
|
6 | int16_t getAttribute(int16_t ID, T& argpAttribute)
|
7 | {
|
8 | switch (ID) {
|
9 | case FLASHADDRESSE_ID:
|
10 | if(typeid(argpAttribute) == typeid(flashAddresse)){
|
11 | argpAttribute = flashAddresse;
|
12 | }
|
13 |
|
14 | break;
|
15 | case SEKTORNUMMER_ID:
|
16 | argpAttribute = sektorNummer;
|
17 | break;
|
18 | default:
|
19 | return NOPARAM_IN_FLASH;
|
20 | }
|
21 | return SUCCESS;
|
22 | }
|
Dabei gibt der Compiler diese Warnung:
"conversion to 'short int' from 'uint32_t {aka long unsigned int}' may
alter its value [-Wconversion]"
bei folgender Zeile:
1 | argpAttribute = flashAddresse;
|
Hat irgendjemand eine Idee wie man das programmieren kann ohne dass
Compiler Warnungen ausgegeben werden?
Viele Grüße