Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Definiowanie enuma zmienną stałą, która jest inicjalizowana enumem

Ostatnio zmodyfikowano 2020-05-07 22:21
Autor Wiadomość
dlakin95
Temat założony przez niniejszego użytkownika
Definiowanie enuma zmienną stałą, która jest inicjalizowana enumem
» 2020-05-07 21:57:48
Cześć,

Mam dość proste pytanie, ale chciałbym się upewnić, czy dobrze to rozumiem.

Mam dwa nagłówki.

C/C++
// Example1.hpp
#ifndef EXAMPLE1_HPP
#define EXAMPLE1_HPP
#include"example2.hpp"

const int ab = 1;

enum A {
    A1 = 1,
    A3 = ab,
    A2 = aa // Error: Expression is not integral constant expression
};

#endif // EXAMPLE1_HPP

C/C++
// Example2.hpp
#ifndef EXAMPLE2_HPP
#define EXAMPLE2_HPP

#include"example1.hpp"

constexpr int aa = A1;

#endif // EXAMPLE2_HPP

Czy dobrze rozumiem, że zakładając kompilację w jednostce translacyjnej, która include'uje tylko "example1.hpp" nie uda się inicjalizacja zmiennej "aa", ponieważ jeszcze nie jest znana wartość A1.

Oraz zakładając kompilację, która include'uje tylko "example2.hpp" nie uda się inicjalizacja zmiennej "A2", ponieważ jeszcze nie jest znana wartość "aa".

Z góry dzięki za pomoc.
P-176843
pekfos
» 2020-05-07 22:21:50
Tak. Nie możesz użyć nazwy przed jej wprowadzeniem. Nic specyficznego dla enumów, ani stałych.
P-176844
« 1 »
  Strona 1 z 1