Created
May 14, 2018 09:34
-
-
Save Leandros/d7dbef22479424daf5233737e8af112f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma once | |
struct Type0 { int x; }; | |
struct Type1 { int x; }; | |
struct Type2 { int x; }; | |
struct Type3 { int x; }; | |
struct Type4 { int x; }; | |
struct Type5 { int x; }; | |
struct Type6 { int x; }; | |
struct Type7 { int x; }; | |
struct Type8 { int x; }; | |
struct Type9 { int x; }; | |
struct Type10 { int x; }; | |
struct Type11 { int x; }; | |
struct Type12 { int x; }; | |
struct Type13 { int x; }; | |
struct Type14 { int x; }; | |
struct Type15 { int x; }; | |
struct Type16 { int x; }; | |
struct Type17 { int x; }; | |
struct Type18 { int x; }; | |
struct Type19 { int x; }; | |
struct Type20 { int x; }; | |
struct Type21 { int x; }; | |
struct Type22 { int x; }; | |
struct Type23 { int x; }; | |
struct Type24 { int x; }; | |
struct Type25 { int x; }; | |
struct Type26 { int x; }; | |
struct Type27 { int x; }; | |
struct Type28 { int x; }; | |
struct Type29 { int x; }; | |
struct Type30 { int x; }; | |
struct Type31 { int x; }; | |
struct Type32 { int x; }; | |
struct Type33 { int x; }; | |
struct Type34 { int x; }; | |
struct Type35 { int x; }; | |
struct Type36 { int x; }; | |
struct Type37 { int x; }; | |
struct Type38 { int x; }; | |
struct Type39 { int x; }; | |
struct Type40 { int x; }; | |
struct Type41 { int x; }; | |
struct Type42 { int x; }; | |
struct Type43 { int x; }; | |
struct Type44 { int x; }; | |
struct Type45 { int x; }; | |
struct Type46 { int x; }; | |
struct Type47 { int x; }; | |
struct Type48 { int x; }; | |
struct Type49 { int x; }; | |
struct Type50 { int x; }; | |
struct Type51 { int x; }; | |
struct Type52 { int x; }; | |
struct Type53 { int x; }; | |
struct Type54 { int x; }; | |
struct Type55 { int x; }; | |
struct Type56 { int x; }; | |
struct Type57 { int x; }; | |
struct Type58 { int x; }; | |
struct Type59 { int x; }; | |
struct Type60 { int x; }; | |
struct Type61 { int x; }; | |
struct Type62 { int x; }; | |
struct Type63 { int x; }; | |
struct Type64 { int x; }; | |
struct Type65 { int x; }; | |
struct Type66 { int x; }; | |
struct Type67 { int x; }; | |
struct Type68 { int x; }; | |
struct Type69 { int x; }; | |
struct Type70 { int x; }; | |
struct Type71 { int x; }; | |
struct Type72 { int x; }; | |
struct Type73 { int x; }; | |
struct Type74 { int x; }; | |
struct Type75 { int x; }; | |
struct Type76 { int x; }; | |
struct Type77 { int x; }; | |
struct Type78 { int x; }; | |
struct Type79 { int x; }; | |
struct Type80 { int x; }; | |
struct Type81 { int x; }; | |
struct Type82 { int x; }; | |
struct Type83 { int x; }; | |
struct Type84 { int x; }; | |
struct Type85 { int x; }; | |
struct Type86 { int x; }; | |
struct Type87 { int x; }; | |
struct Type88 { int x; }; | |
struct Type89 { int x; }; | |
struct Type90 { int x; }; | |
struct Type91 { int x; }; | |
struct Type92 { int x; }; | |
struct Type93 { int x; }; | |
struct Type94 { int x; }; | |
struct Type95 { int x; }; | |
struct Type96 { int x; }; | |
struct Type97 { int x; }; | |
struct Type98 { int x; }; | |
struct Type99 { int x; }; | |
struct Type100 { int x; }; | |
struct Type101 { int x; }; | |
struct Type102 { int x; }; | |
struct Type103 { int x; }; | |
struct Type104 { int x; }; | |
struct Type105 { int x; }; | |
struct Type106 { int x; }; | |
struct Type107 { int x; }; | |
struct Type108 { int x; }; | |
struct Type109 { int x; }; | |
struct Type110 { int x; }; | |
struct Type111 { int x; }; | |
struct Type112 { int x; }; | |
struct Type113 { int x; }; | |
struct Type114 { int x; }; | |
struct Type115 { int x; }; | |
struct Type116 { int x; }; | |
struct Type117 { int x; }; | |
struct Type118 { int x; }; | |
struct Type119 { int x; }; | |
struct Type120 { int x; }; | |
struct Type121 { int x; }; | |
struct Type122 { int x; }; | |
struct Type123 { int x; }; | |
struct Type124 { int x; }; | |
struct Type125 { int x; }; | |
struct Type126 { int x; }; | |
struct Type127 { int x; }; | |
struct Type128 { int x; }; | |
struct Type129 { int x; }; | |
struct Type130 { int x; }; | |
struct Type131 { int x; }; | |
struct Type132 { int x; }; | |
struct Type133 { int x; }; | |
struct Type134 { int x; }; | |
struct Type135 { int x; }; | |
struct Type136 { int x; }; | |
struct Type137 { int x; }; | |
struct Type138 { int x; }; | |
struct Type139 { int x; }; | |
struct Type140 { int x; }; | |
struct Type141 { int x; }; | |
struct Type142 { int x; }; | |
struct Type143 { int x; }; | |
struct Type144 { int x; }; | |
struct Type145 { int x; }; | |
struct Type146 { int x; }; | |
struct Type147 { int x; }; | |
struct Type148 { int x; }; | |
struct Type149 { int x; }; | |
struct Type150 { int x; }; | |
struct Type151 { int x; }; | |
struct Type152 { int x; }; | |
struct Type153 { int x; }; | |
struct Type154 { int x; }; | |
struct Type155 { int x; }; | |
struct Type156 { int x; }; | |
struct Type157 { int x; }; | |
struct Type158 { int x; }; | |
struct Type159 { int x; }; | |
struct Type160 { int x; }; | |
struct Type161 { int x; }; | |
struct Type162 { int x; }; | |
struct Type163 { int x; }; | |
struct Type164 { int x; }; | |
struct Type165 { int x; }; | |
struct Type166 { int x; }; | |
struct Type167 { int x; }; | |
struct Type168 { int x; }; | |
struct Type169 { int x; }; | |
struct Type170 { int x; }; | |
struct Type171 { int x; }; | |
struct Type172 { int x; }; | |
struct Type173 { int x; }; | |
struct Type174 { int x; }; | |
struct Type175 { int x; }; | |
struct Type176 { int x; }; | |
struct Type177 { int x; }; | |
struct Type178 { int x; }; | |
struct Type179 { int x; }; | |
struct Type180 { int x; }; | |
struct Type181 { int x; }; | |
struct Type182 { int x; }; | |
struct Type183 { int x; }; | |
struct Type184 { int x; }; | |
struct Type185 { int x; }; | |
struct Type186 { int x; }; | |
struct Type187 { int x; }; | |
struct Type188 { int x; }; | |
struct Type189 { int x; }; | |
struct Type190 { int x; }; | |
struct Type191 { int x; }; | |
struct Type192 { int x; }; | |
struct Type193 { int x; }; | |
struct Type194 { int x; }; | |
struct Type195 { int x; }; | |
struct Type196 { int x; }; | |
struct Type197 { int x; }; | |
struct Type198 { int x; }; | |
struct Type199 { int x; }; | |
struct Type200 { int x; }; | |
struct Type201 { int x; }; | |
struct Type202 { int x; }; | |
struct Type203 { int x; }; | |
struct Type204 { int x; }; | |
struct Type205 { int x; }; | |
struct Type206 { int x; }; | |
struct Type207 { int x; }; | |
struct Type208 { int x; }; | |
struct Type209 { int x; }; | |
struct Type210 { int x; }; | |
struct Type211 { int x; }; | |
struct Type212 { int x; }; | |
struct Type213 { int x; }; | |
struct Type214 { int x; }; | |
struct Type215 { int x; }; | |
struct Type216 { int x; }; | |
struct Type217 { int x; }; | |
struct Type218 { int x; }; | |
struct Type219 { int x; }; | |
struct Type220 { int x; }; | |
struct Type221 { int x; }; | |
struct Type222 { int x; }; | |
struct Type223 { int x; }; | |
struct Type224 { int x; }; | |
struct Type225 { int x; }; | |
struct Type226 { int x; }; | |
struct Type227 { int x; }; | |
struct Type228 { int x; }; | |
struct Type229 { int x; }; | |
struct Type230 { int x; }; | |
struct Type231 { int x; }; | |
struct Type232 { int x; }; | |
struct Type233 { int x; }; | |
struct Type234 { int x; }; | |
struct Type235 { int x; }; | |
struct Type236 { int x; }; | |
struct Type237 { int x; }; | |
struct Type238 { int x; }; | |
struct Type239 { int x; }; | |
struct Type240 { int x; }; | |
struct Type241 { int x; }; | |
struct Type242 { int x; }; | |
struct Type243 { int x; }; | |
struct Type244 { int x; }; | |
struct Type245 { int x; }; | |
struct Type246 { int x; }; | |
struct Type247 { int x; }; | |
struct Type248 { int x; }; | |
struct Type249 { int x; }; | |
struct Type250 { int x; }; | |
struct Type251 { int x; }; | |
struct Type252 { int x; }; | |
struct Type253 { int x; }; | |
struct Type254 { int x; }; | |
struct Type255 { int x; }; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include "types.h" | |
union MyVariant | |
{ | |
Type0 type0; | |
Type1 type1; | |
Type2 type2; | |
Type3 type3; | |
Type4 type4; | |
Type5 type5; | |
Type6 type6; | |
Type7 type7; | |
Type8 type8; | |
Type9 type9; | |
Type10 type10; | |
Type11 type11; | |
Type12 type12; | |
Type13 type13; | |
Type14 type14; | |
Type15 type15; | |
Type16 type16; | |
Type17 type17; | |
Type18 type18; | |
Type19 type19; | |
Type20 type20; | |
Type21 type21; | |
Type22 type22; | |
Type23 type23; | |
Type24 type24; | |
Type25 type25; | |
Type26 type26; | |
Type27 type27; | |
Type28 type28; | |
Type29 type29; | |
Type30 type30; | |
Type31 type31; | |
Type32 type32; | |
Type33 type33; | |
Type34 type34; | |
Type35 type35; | |
Type36 type36; | |
Type37 type37; | |
Type38 type38; | |
Type39 type39; | |
Type40 type40; | |
Type41 type41; | |
Type42 type42; | |
Type43 type43; | |
Type44 type44; | |
Type45 type45; | |
Type46 type46; | |
Type47 type47; | |
Type48 type48; | |
Type49 type49; | |
Type50 type50; | |
Type51 type51; | |
Type52 type52; | |
Type53 type53; | |
Type54 type54; | |
Type55 type55; | |
Type56 type56; | |
Type57 type57; | |
Type58 type58; | |
Type59 type59; | |
Type60 type60; | |
Type61 type61; | |
Type62 type62; | |
Type63 type63; | |
Type64 type64; | |
Type65 type65; | |
Type66 type66; | |
Type67 type67; | |
Type68 type68; | |
Type69 type69; | |
Type70 type70; | |
Type71 type71; | |
Type72 type72; | |
Type73 type73; | |
Type74 type74; | |
Type75 type75; | |
Type76 type76; | |
Type77 type77; | |
Type78 type78; | |
Type79 type79; | |
Type80 type80; | |
Type81 type81; | |
Type82 type82; | |
Type83 type83; | |
Type84 type84; | |
Type85 type85; | |
Type86 type86; | |
Type87 type87; | |
Type88 type88; | |
Type89 type89; | |
Type90 type90; | |
Type91 type91; | |
Type92 type92; | |
Type93 type93; | |
Type94 type94; | |
Type95 type95; | |
Type96 type96; | |
Type97 type97; | |
Type98 type98; | |
Type99 type99; | |
Type100 type100; | |
Type101 type101; | |
Type102 type102; | |
Type103 type103; | |
Type104 type104; | |
Type105 type105; | |
Type106 type106; | |
Type107 type107; | |
Type108 type108; | |
Type109 type109; | |
Type110 type110; | |
Type111 type111; | |
Type112 type112; | |
Type113 type113; | |
Type114 type114; | |
Type115 type115; | |
Type116 type116; | |
Type117 type117; | |
Type118 type118; | |
Type119 type119; | |
Type120 type120; | |
Type121 type121; | |
Type122 type122; | |
Type123 type123; | |
Type124 type124; | |
Type125 type125; | |
Type126 type126; | |
Type127 type127; | |
Type128 type128; | |
Type129 type129; | |
Type130 type130; | |
Type131 type131; | |
Type132 type132; | |
Type133 type133; | |
Type134 type134; | |
Type135 type135; | |
Type136 type136; | |
Type137 type137; | |
Type138 type138; | |
Type139 type139; | |
Type140 type140; | |
Type141 type141; | |
Type142 type142; | |
Type143 type143; | |
Type144 type144; | |
Type145 type145; | |
Type146 type146; | |
Type147 type147; | |
Type148 type148; | |
Type149 type149; | |
Type150 type150; | |
Type151 type151; | |
Type152 type152; | |
Type153 type153; | |
Type154 type154; | |
Type155 type155; | |
Type156 type156; | |
Type157 type157; | |
Type158 type158; | |
Type159 type159; | |
Type160 type160; | |
Type161 type161; | |
Type162 type162; | |
Type163 type163; | |
Type164 type164; | |
Type165 type165; | |
Type166 type166; | |
Type167 type167; | |
Type168 type168; | |
Type169 type169; | |
Type170 type170; | |
Type171 type171; | |
Type172 type172; | |
Type173 type173; | |
Type174 type174; | |
Type175 type175; | |
Type176 type176; | |
Type177 type177; | |
Type178 type178; | |
Type179 type179; | |
Type180 type180; | |
Type181 type181; | |
Type182 type182; | |
Type183 type183; | |
Type184 type184; | |
Type185 type185; | |
Type186 type186; | |
Type187 type187; | |
Type188 type188; | |
Type189 type189; | |
Type190 type190; | |
Type191 type191; | |
Type192 type192; | |
Type193 type193; | |
Type194 type194; | |
Type195 type195; | |
Type196 type196; | |
Type197 type197; | |
Type198 type198; | |
Type199 type199; | |
Type200 type200; | |
Type201 type201; | |
Type202 type202; | |
Type203 type203; | |
Type204 type204; | |
Type205 type205; | |
Type206 type206; | |
Type207 type207; | |
Type208 type208; | |
Type209 type209; | |
Type210 type210; | |
Type211 type211; | |
Type212 type212; | |
Type213 type213; | |
Type214 type214; | |
Type215 type215; | |
Type216 type216; | |
Type217 type217; | |
Type218 type218; | |
Type219 type219; | |
Type220 type220; | |
Type221 type221; | |
Type222 type222; | |
Type223 type223; | |
Type224 type224; | |
Type225 type225; | |
Type226 type226; | |
Type227 type227; | |
Type228 type228; | |
Type229 type229; | |
Type230 type230; | |
Type231 type231; | |
Type232 type232; | |
Type233 type233; | |
Type234 type234; | |
Type235 type235; | |
Type236 type236; | |
Type237 type237; | |
Type238 type238; | |
Type239 type239; | |
Type240 type240; | |
Type241 type241; | |
Type242 type242; | |
Type243 type243; | |
Type244 type244; | |
Type245 type245; | |
Type246 type246; | |
Type247 type247; | |
Type248 type248; | |
Type249 type249; | |
Type250 type250; | |
Type251 type251; | |
Type252 type252; | |
Type253 type253; | |
Type254 type254; | |
Type255 type255; | |
}; | |
int main() | |
{ | |
Type100 t; | |
t.x = 10; | |
MyVariant v; | |
v.type100 = t; | |
printf("%d\n", v.type100.x); | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <variant> | |
#include <stdio.h> | |
#include "types.h" | |
using MyVariant = std::variant< | |
Type0, | |
Type1, | |
Type2, | |
Type3, | |
Type4, | |
Type5, | |
Type6, | |
Type7, | |
Type8, | |
Type9, | |
Type10, | |
Type11, | |
Type12, | |
Type13, | |
Type14, | |
Type15, | |
Type16, | |
Type17, | |
Type18, | |
Type19, | |
Type20, | |
Type21, | |
Type22, | |
Type23, | |
Type24, | |
Type25, | |
Type26, | |
Type27, | |
Type28, | |
Type29, | |
Type30, | |
Type31, | |
Type32, | |
Type33, | |
Type34, | |
Type35, | |
Type36, | |
Type37, | |
Type38, | |
Type39, | |
Type40, | |
Type41, | |
Type42, | |
Type43, | |
Type44, | |
Type45, | |
Type46, | |
Type47, | |
Type48, | |
Type49, | |
Type50, | |
Type51, | |
Type52, | |
Type53, | |
Type54, | |
Type55, | |
Type56, | |
Type57, | |
Type58, | |
Type59, | |
Type60, | |
Type61, | |
Type62, | |
Type63, | |
Type64, | |
Type65, | |
Type66, | |
Type67, | |
Type68, | |
Type69, | |
Type70, | |
Type71, | |
Type72, | |
Type73, | |
Type74, | |
Type75, | |
Type76, | |
Type77, | |
Type78, | |
Type79, | |
Type80, | |
Type81, | |
Type82, | |
Type83, | |
Type84, | |
Type85, | |
Type86, | |
Type87, | |
Type88, | |
Type89, | |
Type90, | |
Type91, | |
Type92, | |
Type93, | |
Type94, | |
Type95, | |
Type96, | |
Type97, | |
Type98, | |
Type99, | |
Type100, | |
Type101, | |
Type102, | |
Type103, | |
Type104, | |
Type105, | |
Type106, | |
Type107, | |
Type108, | |
Type109, | |
Type110, | |
Type111, | |
Type112, | |
Type113, | |
Type114, | |
Type115, | |
Type116, | |
Type117, | |
Type118, | |
Type119, | |
Type120, | |
Type121, | |
Type122, | |
Type123, | |
Type124, | |
Type125, | |
Type126, | |
Type127, | |
Type128, | |
Type129, | |
Type130, | |
Type131, | |
Type132, | |
Type133, | |
Type134, | |
Type135, | |
Type136, | |
Type137, | |
Type138, | |
Type139, | |
Type140, | |
Type141, | |
Type142, | |
Type143, | |
Type144, | |
Type145, | |
Type146, | |
Type147, | |
Type148, | |
Type149, | |
Type150, | |
Type151, | |
Type152, | |
Type153, | |
Type154, | |
Type155, | |
Type156, | |
Type157, | |
Type158, | |
Type159, | |
Type160, | |
Type161, | |
Type162, | |
Type163, | |
Type164, | |
Type165, | |
Type166, | |
Type167, | |
Type168, | |
Type169, | |
Type170, | |
Type171, | |
Type172, | |
Type173, | |
Type174, | |
Type175, | |
Type176, | |
Type177, | |
Type178, | |
Type179, | |
Type180, | |
Type181, | |
Type182, | |
Type183, | |
Type184, | |
Type185, | |
Type186, | |
Type187, | |
Type188, | |
Type189, | |
Type190, | |
Type191, | |
Type192, | |
Type193, | |
Type194, | |
Type195, | |
Type196, | |
Type197, | |
Type198, | |
Type199, | |
Type200, | |
Type201, | |
Type202, | |
Type203, | |
Type204, | |
Type205, | |
Type206, | |
Type207, | |
Type208, | |
Type209, | |
Type210, | |
Type211, | |
Type212, | |
Type213, | |
Type214, | |
Type215, | |
Type216, | |
Type217, | |
Type218, | |
Type219, | |
Type220, | |
Type221, | |
Type222, | |
Type223, | |
Type224, | |
Type225, | |
Type226, | |
Type227, | |
Type228, | |
Type229, | |
Type230, | |
Type231, | |
Type232, | |
Type233, | |
Type234, | |
Type235, | |
Type236, | |
Type237, | |
Type238, | |
Type239, | |
Type240, | |
Type241, | |
Type242, | |
Type243, | |
Type244, | |
Type245, | |
Type246, | |
Type247, | |
Type248, | |
Type249, | |
Type250, | |
Type251, | |
Type252, | |
Type253, | |
Type254, | |
Type255>; | |
int main() | |
{ | |
Type100 t; | |
t.x = 10; | |
MyVariant v; | |
v = t; | |
printf("%d\n", std::get<Type100>(v).x); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment