#pragma once #include #include #include // #define class struct // Uncomment this line to switch all the classes to structs using namespace std; class Hardware { public: std::string manufacturer; std::string model; int releasedyear; // example of how to set a dictionary item // std::string myval = HardwareSpecs.at("manufacturer"); }; class Mobo: public Hardware { public: int pciegen; int piceslots; int dimmslots; int dualchannel; // This is an int so 1 = dualchannel and 2 = quad channel int ramspeed; std::string comment; std::map HardwareSpecs = { {"manufacturer", "The Gnomes part 2"}, {"model", "Honey Bomb"}, {"ReleasedYear", "2025"}, {"pciegen", "4"}, {"pcieslots", "3"}, {"dimmslots", "2"}, {"ramchannels", "2"}, {"ramspeed", "6000"}, {"comment", "If on AM5 platform - update BIOS before booting!"}, }; }; class CPU: public Hardware { public: std::map HardwareSpecs = { {"manufacturer", "The Gnomes part 2"}, {"model", "Honey Bomb"}, {"ReleasedYear", "2025"}, {"bits", "64"}, {"igpu", "false"}, {"igpusize", "N/A"}, {"cores", "4"}, {"threads", "8"}, {"l1cache", "32Mb"}, {"l2cache", "32Mb"}, {"l3cache", "32Mb"}, {"pcielanes", "24"}, {"maxram", "256Gb"}, {"mainclock", "3Ghz"}, {"boostclock", "3.2Ghz"}, {"architecture", "x86_64"}, {"memoryrange", "00:00 - set me!"}, {"microcode", "unchanged"}, {"kerneldriver", "intel"}, {"comment", "If on AM5 platform - update BIOS before booting!"}, }; }; class GPU: public Hardware { public: map GPUSpecs; // GPUSpecs["Ram"] = GPU { "Ram", "12Gb" }; };