Register Type Aliases

#include <iostream>
#include <cstdint>
using namespace std;

// Step 1: Create the three type aliases here:
using Reg8 = uint8_t;
using Reg16 = uint16_t;
using Reg32 = uint32_t;


int main() {
    uint64_t raw8, raw16, raw32;
    cin >> raw8 >> raw16 >> raw32;

    // Step 2: Store the values using the alias types:
    // Reg8  r8  = static_cast<Reg8>(raw8);
    // Reg16 r16 = static_cast<Reg16>(raw16);
    // Reg32 r32 = static_cast<Reg32>(raw32);
    Reg8  r8  { raw8  };
    Reg16 r16 { raw16 };
    Reg32 r32 { raw32 };




   // Cast to wider unsigned types to ensure numeric output
    cout << "R8="  << static_cast<uint32_t>(r8)
         << " R16=" << static_cast<uint32_t>(r16)
         << " R32=" << static_cast<uint32_t>(r32);

    return 0;
}

Reg name {var/initilizer val};      //cool

 

 

 

 

 

Upvote
Downvote
Loading...

Input

255 12345 987654321

Expected Output

R8=255 R16=12345 R32=987654321