0
임의의 값을 지정하고 무작위 값의 유일한 옵션은 uint32_t에 반환됩니다. 그 값을 uint64_t의 유니온 변수에 할당하려고합니다. 그래서 나는 다음과 같이 행동한다.유니온의 멤버 변수에 액세스 : uint64에 대해 선언되었지만 uint32에 무언가가 필요합니다. C++
#include <iostream>
#include <random>
#include <time.h> /* time */
class A{
public:
A(){
srand (time(NULL));
A_ = rand(); // Also error
// What i want ::
// A_.A32 = rand();
}
union A_{
uint64_t A64_;
struct A32{
uint32_t a32_1;
uint32_t a32_2;
};
};
};
int main(){
A a;
}
나는 아마도 같은 일부 uint32_t의 a32_1하는 값 또는 a32_2을 assigining 등 uint32_t에서 무언가를 사용할 수없는이 문제를 해결할 수있는 방법
?
이g++ -std=c++14 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP - MF"src/myNeo.d" -MT"src/myNeo.d" -o "src/myNeo.o" "../src/myNeo.cpp"
../src/myNeo.cpp:57:6: error: expected unqualified-id
연합 앨리어싱 표준 C++에서 지원되지 않습니다 , 당신이 나는 그것이 익명 조합과 내 LLVM 컴파일러에서 작동하도록 얻을 수 있습니다 완전히 다른 접근 –
@MM을 추천하지만, 오류가 불평 ++ g 것 이것은 표준 C++에서 지원되지 않는다고 말합니다. 그래서 실제로는 익명의 노동 조합이 아니라고 생각합니다. 그것은 불가능합니다. – user7865286
다음은 원하는대로 할 수있는 몇 가지 방법입니다. https://ideone.com/isWCFA 왜 내가 원하는지 모르겠습니다. 확실히 나쁜 생각 인 것처럼 보이지만 구문을 보여줍니다. –