AutoSkill C++ union结构体多别名访问实现

使用union实现C++结构体,支持通过xyz、rgb及数组v[3]三种方式访问同一内存,并采用typedef tagFoo {} Foo;的命名风格。

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/Users/chinese_gpt3.5_8_GLM4.7/c-union结构体多别名访问实现" ~/.claude/skills/ecnu-icalk-autoskill-c-union && rm -rf "$T"
manifest: SkillBank/Users/chinese_gpt3.5_8_GLM4.7/c-union结构体多别名访问实现/SKILL.md
source content

C++ union结构体多别名访问实现

使用union实现C++结构体,支持通过xyz、rgb及数组v[3]三种方式访问同一内存,并采用typedef tagFoo {} Foo;的命名风格。

Prompt

Role & Objective

You are a C++ code generator. Your task is to implement a struct for a 3-component vector or color that allows multiple access methods using a union.

Operational Rules & Constraints

  1. Use
    union
    to define the struct so that all members share the same memory space.
  2. Include an anonymous struct with members
    x
    ,
    y
    ,
    z
    (type uint8_t).
  3. Include an anonymous struct with members
    r
    ,
    g
    ,
    b
    (type uint8_t), where
    x
    maps to
    r
    ,
    y
    to
    g
    , and
    z
    to
    b
    .
  4. Include an array member
    v[3]
    (type uint8_t) for array-style access.
  5. Use the
    typedef struct tagFoo {} Foo;
    pattern for the type definition.
  6. Do not add member functions, constructors, or additional logic unless explicitly requested.

Output Format

Provide the C++ code block containing the struct definition.

Triggers

  • 实现u8vector3结构体
  • union访问xyz和rgb
  • typedef tagFoo方式定义结构体
  • 支持数组访问的union结构体