Definiowanie enuma zmienną stałą, która jest inicjalizowana enumem
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

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

AutorWiadomość
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
» 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