hexdump.cpp 15 KB

12345678910111213141516171819202122232425262728
  1. #include <cxxomfort/cxxomfort.hpp>
  2. #include <cxxomfort/library/foreach.hpp>
  3. #include <iostream>
  4. #include "../library/literals.hpp"
  5. #include "../library/affixes/hexdump.hpp"
  6. #include <iostream>
  7. // reference:
  8. // https://en.cppreference.com/w/cpp/language/user_literal
  9. // The command that generates this hexdump is:
  10. // hexdump -v -e '/1 "%02x"' LICENSE
  11. char const hex[] = "474e55204c45535345522047454e4552414c205055424c4943204c4943454e5345200a56657273696f6e20332c203239204a756e6520323030370a436f70797269676874202843292032303037204672656520536f66747761726520466f756e646174696f6e2c20496e632e203c687474703a2f2f6673662e6f72672f3e0a0a45766572796f6e65206973207065726d697474656420746f20636f707920616e64206469737472696275746520766572626174696d20636f70696573206f662074686973206c6963656e736520646f63756d656e742c20627574206368616e67696e67206974206973206e6f7420616c6c6f7765642e0a0a546869732076657273696f6e206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e736520696e636f72706f726174657320746865207465726d7320616e6420636f6e646974696f6e73206f662076657273696f6e2033206f662074686520474e552047656e6572616c205075626c6963204c6963656e73652c20737570706c656d656e74656420627920746865206164646974696f6e616c207065726d697373696f6e73206c69737465642062656c6f772e0a0a302e204164646974696f6e616c20446566696e6974696f6e732e0a0a417320757365642068657265696e2c202274686973204c6963656e7365222072656665727320746f2076657273696f6e2033206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e73652c20616e64207468652022474e552047504c222072656665727320746f2076657273696f6e2033206f662074686520474e552047656e6572616c205075626c6963204c6963656e73652e0a0a22546865204c696272617279222072656665727320746f206120636f766572656420776f726b20676f7665726e65642062792074686973204c6963656e73652c206f74686572207468616e20616e204170706c69636174696f6e206f72206120436f6d62696e656420576f726b20617320646566696e65642062656c6f772e0a0a416e20224170706c69636174696f6e2220697320616e7920776f726b2074686174206d616b657320757365206f6620616e20696e746572666163652070726f766964656420627920746865204c6962726172792c20627574207768696368206973206e6f74206f7468657277697365206261736564206f6e20746865204c6962726172792e20446566696e696e67206120737562636c617373206f66206120636c61737320646566696e656420627920746865204c696272617279206973206465656d65642061206d6f6465206f66207573696e6720616e20696e746572666163652070726f766964656420627920746865204c6962726172792e0a0a412022436f6d62696e656420576f726b22206973206120776f726b2070726f647563656420627920636f6d62696e696e67206f72206c696e6b696e6720616e204170706c69636174696f6e207769746820746865204c6962726172792e2054686520706172746963756c61722076657273696f6e206f6620746865204c69627261727920776974682077686963682074686520436f6d62696e656420576f726b20776173206d61646520697320616c736f2063616c6c65642074686520224c696e6b65642056657273696f6e222e0a0a54686520224d696e696d616c20436f72726573706f6e64696e6720536f757263652220666f72206120436f6d62696e656420576f726b206d65616e732074686520436f72726573706f6e64696e6720536f7572636520666f722074686520436f6d62696e656420576f726b2c206578636c7564696e6720616e7920736f7572636520636f646520666f7220706f7274696f6e73206f662074686520436f6d62696e656420576f726b20746861742c20636f6e7369646572656420696e2069736f6c6174696f6e2c20617265206261736564206f6e20746865204170706c69636174696f6e2c20616e64206e6f74206f6e20746865204c696e6b65642056657273696f6e2e0a0a5468652022436f72726573706f6e64696e67204170706c69636174696f6e20436f64652220666f72206120436f6d62696e656420576f726b206d65616e7320746865206f626a65637420636f646520616e642f6f7220736f7572636520636f646520666f7220746865204170706c69636174696f6e2c20696e636c7564696e6720616e79206461746120616e64207574696c6974792070726f6772616d73206e656564656420666f7220726570726f647563696e672074686520436f6d62696e656420576f726b2066726f6d20746865204170706c69636174696f6e2c20627574206578636c7564696e67207468652053797374656d204c6962726172696573206f662074686520436f6d62696e656420576f726b2e0a0a312e20457863657074696f6e20746f2053656374696f6e2033206f662074686520474e552047504c2e200a596f75206d617920636f6e766579206120636f766572656420776f726b20756e6465722073656374696f6e73203320616e642034206f662074686973204c6963656e736520776974686f7574206265696e6720626f756e642062792073656374696f6e2033206f662074686520474e552047504c2e0a0a322e20436f6e766579696e67204d6f6469666965642056657273696f6e732e200a496620796f75206d6f64696679206120636f7079206f6620746865204c6962726172792c20616e642c20696e20796f7572206d6f64696669636174696f6e732c206120666163696c6974792072656665727320746f20612066756e6374696f6e206f72206461746120746f20626520737570706c69656420627920616e204170706c69636174696f6e207468617420757365732074686520666163696c69747920286f74686572207468616e20617320616e20617267756d656e7420706173736564207768656e2074686520666163696c69747920697320696e766f6b6564292c207468656e20796f75206d617920636f6e766579206120636f7079206f6620746865206d6f6469666965642076657273696f6e3a0a0a612920756e6465722074686973204c6963656e73652c2070726f7669646564207468617420796f75206d616b65206120676f6f64206661697468206566666f727420746f20656e7375726520746861742c20696e20746865206576656e7420616e204170706c69636174696f6e20646f6573206e6f7420737570706c79207468652066756e6374696f6e206f7220646174612c2074686520666163696c697479207374696c6c206f706572617465732c20616e6420706572666f726d732077686174657665722070617274206f662069747320707572706f73652072656d61696e73206d65616e696e6766756c2c206f720a0a622920756e6465722074686520474e552047504c2c2077697468206e6f6e65206f6620746865206164646974696f6e616c207065726d697373696f6e73206f662074686973204c6963656e7365206170706c696361626c6520746f207468617420636f70792e0a0a332e204f626a65637420436f646520496e636f72706f726174696e67204d6174657269616c2066726f6d204c696272617279204865616465722046696c65732e200a546865206f626a65637420636f646520666f726d206f6620616e204170706c69636174696f6e206d617920696e636f72706f72617465206d6174657269616c2066726f6d2061206865616465722066696c6520746861742069732070617274206f6620746865204c6962726172792e20596f75206d617920636f6e7665792073756368206f626a65637420636f646520756e646572207465726d73206f6620796f75722063686f6963652c2070726f766964656420746861742c2069662074686520696e636f72706f7261746564206d6174657269616c206973206e6f74206c696d6974656420746f206e756d65726963616c20706172616d65746572732c206461746120737472756374757265206c61796f75747320616e64206163636573736f72732c206f7220736d616c6c206d6163726f732c20696e6c696e652066756e6374696f6e7320616e642074656d706c61746573202874656e206f72206665776572206c696e657320696e206c656e677468292c20796f7520646f20626f7468206f662074686520666f6c6c6f77696e673a0a0a612920476976652070726f6d696e656e74206e6f746963652077697468206561636820636f7079206f6620746865206f626a65637420636f6465207468617420746865204c696272617279206973207573656420696e20697420616e64207468617420746865204c69627261727920616e6420697473207573652061726520636f76657265642062792074686973204c6963656e73652e0a0a6229204163636f6d70616e7920746865206f626a65637420636f64652077697468206120636f7079206f662074686520474e552047504c20616e642074686973206c6963656e736520646f63756d656e742e0a0a342e20436f6d62696e656420576f726b732e200a596f75206d617920636f6e766579206120436f6d62696e656420576f726b20756e646572207465726d73206f6620796f75722063686f69636520746861742c2074616b656e20746f6765746865722c206566666563746976656c7920646f206e6f74207265737472696374206d6f64696669636174696f6e206f662074686520706f7274696f6e73206f6620746865204c69627261727920636f6e7461696e656420696e2074686520436f6d62696e656420576f726b20616e64207265766572736520656e67696e656572696e6720666f7220646562756767696e672073756368206d6f64696669636174696f6e732c20696620796f7520616c736f20646f2065616368206f662074686520666f6c6c6f77696e673a0a0a612920476976652070726f6d696e656e74206e6f746963652077697468206561636820636f7079206f662074686520436f6d62696e656420576f726b207468617420746865204c696272617279206973207573656420696e20697420616e64207468617420746865204c69627261727920616e6420697473207573652061726520636f76657265642062792074686973204c6963656e73652e0a0a6229204163636f6d70616e792074686520436f6d62696e656420576f726b2077697468206120636f7079206f662074686520474e552047504c20616e642074686973206c6963656e736520646f63756d656e742e0a0a632920466f72206120436f6d62696e656420576f726b207468617420646973706c61797320636f70797269676874206e6f746963657320647572696e6720657865637574696f6e2c20696e636c7564652074686520636f70797269676874206e6f7469636520666f7220746865204c69627261727920616d6f6e67207468657365206e6f74696365732c2061732077656c6c2061732061207265666572656e636520646972656374696e6720746865207573657220746f2074686520636f70696573206f662074686520474e552047504c20616e642074686973206c6963656e736520646f63756d656e742e0a0a642920446f206f6e65206f662074686520666f6c6c6f77696e673a0a0a302920436f6e76657920746865204d696e696d616c20436f72726573706f6e64696e6720536f7572636520756e64657220746865207465726d73206f662074686973204c6963656e73652c20616e642074686520436f72726573706f6e64696e67204170706c69636174696f6e20436f646520696e206120666f726d207375697461626c6520666f722c20616e6420756e646572207465726d732074686174207065726d69742c20746865207573657220746f207265636f6d62696e65206f722072656c696e6b20746865204170706c69636174696f6e20776974682061206d6f6469666965642076657273696f6e206f6620746865204c696e6b65642056657273696f6e20746f2070726f647563652061206d6f64696669656420436f6d62696e656420576f726b2c20696e20746865206d616e6e6572207370656369666965642062792073656374696f6e2036206f662074686520474e552047504c20666f7220636f6e766579696e6720436f72726573706f6e64696e6720536f757263652e0a0a3129205573652061207375697461626c6520736861726564206c696272617279206d656368616e69736d20666f72206c696e6b696e67207769746820746865204c6962726172792e2041207375697461626c65206d656368616e69736d206973206f6e6520746861742028612920757365732061742072756e2074696d65206120636f7079206f6620746865204c69627261727920616c72656164792070726573656e74206f6e207468652075736572277320636f6d70757465722073797374656d2c20616e64202862292077696c6c206f7065726174652070726f7065726c7920776974682061206d6f6469666965642076657273696f6e206f6620746865204c696272617279207468617420697320696e746572666163652d636f6d70617469626c65207769746820746865204c696e6b65642056657273696f6e2e0a0a65292050726f7669646520496e7374616c6c6174696f6e20496e666f726d6174696f6e2c20627574206f6e6c7920696620796f7520776f756c64206f746865727769736520626520726571756972656420746f2070726f76696465207375636820696e666f726d6174696f6e20756e6465722073656374696f6e2036206f662074686520474e552047504c2c20616e64206f6e6c7920746f2074686520657874656e742074686174207375636820696e666f726d6174696f6e206973206e656365737361727920746f20696e7374616c6c20616e6420657865637574652061206d6f6469666965642076657273696f6e206f662074686520436f6d62696e656420576f726b2070726f6475636564206279207265636f6d62696e696e67206f722072656c696e6b696e6720746865204170706c69636174696f6e20776974682061206d6f6469666965642076657273696f6e206f6620746865204c696e6b65642056657273696f6e2e2028496620796f7520757365206f7074696f6e203464302c2074686520496e7374616c6c6174696f6e20496e666f726d6174696f6e206d757374206163636f6d70616e7920746865204d696e696d616c20436f72726573706f6e64696e6720536f7572636520616e6420436f72726573706f6e64696e67204170706c69636174696f6e20436f64652e20496620796f7520757365206f7074696f6e203464312c20796f75206d7573742070726f766964652074686520496e7374616c6c6174696f6e20496e666f726d6174696f6e20696e20746865206d616e6e6572207370656369666965642062792073656374696f6e2036206f662074686520474e552047504c20666f7220636f6e766579696e6720436f72726573706f6e64696e6720536f757263652e290a0a352e20436f6d62696e6564204c69627261726965732e200a596f75206d617920706c616365206c69627261727920666163696c6974696573207468617420617265206120776f726b206261736564206f6e20746865204c6962726172792073696465206279207369646520696e20612073696e676c65206c69627261727920746f6765746865722077697468206f74686572206c69627261727920666163696c6974696573207468617420617265206e6f74204170706c69636174696f6e7320616e6420617265206e6f7420636f76657265642062792074686973204c6963656e73652c20616e6420636f6e7665792073756368206120636f6d62696e6564206c69627261727920756e646572207465726d73206f6620796f75722063686f6963652c20696620796f7520646f20626f7468206f662074686520666f6c6c6f77696e673a0a0a6129204163636f6d70616e792074686520636f6d62696e6564206c6962726172792077697468206120636f7079206f66207468652073616d6520776f726b206261736564206f6e20746865204c6962726172792c20756e636f6d62696e6564207769746820616e79206f74686572206c69627261727920666163696c69746965732c20636f6e766579656420756e64657220746865207465726d73206f662074686973204c6963656e73652e0a0a622920476976652070726f6d696e656e74206e6f7469636520776974682074686520636f6d62696e6564206c69627261727920746861742070617274206f66206974206973206120776f726b206261736564206f6e20746865204c6962726172792c20616e64206578706c61696e696e6720776865726520746f2066696e6420746865206163636f6d70616e79696e6720756e636f6d62696e656420666f726d206f66207468652073616d6520776f726b2e0a0a362e20526576697365642056657273696f6e73206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e73652e200a546865204672656520536f66747761726520466f756e646174696f6e206d6179207075626c697368207265766973656420616e642f6f72206e65772076657273696f6e73206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e73652066726f6d2074696d6520746f2074696d652e2053756368206e65772076657273696f6e732077696c6c2062652073696d696c617220696e2073706972697420746f207468652070726573656e742076657273696f6e2c20627574206d61792064696666657220696e2064657461696c20746f2061646472657373206e65772070726f626c656d73206f7220636f6e6365726e732e0a0a456163682076657273696f6e20697320676976656e20612064697374696e6775697368696e672076657273696f6e206e756d6265722e20496620746865204c69627261727920617320796f752072656365697665642069742073706563696669657320746861742061206365727461696e206e756d62657265642076657273696f6e206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e736520226f7220616e79206c617465722076657273696f6e22206170706c69657320746f2069742c20796f75206861766520746865206f7074696f6e206f6620666f6c6c6f77696e6720746865207465726d7320616e6420636f6e646974696f6e7320656974686572206f662074686174207075626c69736865642076657273696f6e206f72206f6620616e79206c617465722076657273696f6e207075626c697368656420627920746865204672656520536f66747761726520466f756e646174696f6e2e20496620746865204c69627261727920617320796f7520726563656976656420697420646f6573206e6f74207370656369667920612076657273696f6e206e756d626572206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e73652c20796f75206d61792063686f6f736520616e792076657273696f6e206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e73652065766572207075626c697368656420627920746865204672656520536f66747761726520466f756e646174696f6e2e0a0a496620746865204c69627261727920617320796f7520726563656976656420697420737065636966696573207468617420612070726f78792063616e206465636964652077686574686572206675747572652076657273696f6e73206f662074686520474e55204c65737365722047656e6572616c205075626c6963204c6963656e7365207368616c6c200a6170706c792c20746861742070726f78792773207075626c69632073746174656d656e74206f6620616363657074616e6365206f6620616e792076657273696f6e206973207065726d616e656e7420617574686f72697a6174696f6e20666f7220796f7520746f2063686f6f736520746861742076657273696f6e20666f7220746865204c6962726172792e0a";
  12. int main () {
  13. using namespace std;
  14. using namespace cxxomfort::literals;
  15. using cxxomfort::library::literals::hxd;
  16. cout<< endl;
  17. vector<char> VE = ::hex | hxd;
  18. cout<< "---BEGIN EMBED"<< endl;
  19. CXXO_FOREACH(char c, VE) { cout<< c; }
  20. cout<< "\n---END EMBED"<< endl;
  21. }