Skip to content

Instantly share code, notes, and snippets.

@Leandros
Created May 14, 2018 09:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Leandros/d7dbef22479424daf5233737e8af112f to your computer and use it in GitHub Desktop.
Save Leandros/d7dbef22479424daf5233737e8af112f to your computer and use it in GitHub Desktop.
#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; };
#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);
}
#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