fork download
  1. #include <memory>
  2. #include <iostream>
  3.  
  4. #define RC
  5. #define WR
  6. #define mixin class
  7. #define interface class
  8.  
  9. typedef unsigned short ushort;
  10. typedef unsigned long long ulong64;
  11. typedef unsigned long ulong;
  12.  
  13. // Фолдеры.
  14. namespace WPShell
  15. {
  16. // Внутренние классы.
  17. namespace private_classes
  18. {
  19. interface IFrameWindow
  20. {
  21. // ...
  22. };
  23.  
  24. interface IClientWindow
  25. {
  26. // ...
  27. };
  28.  
  29. template <interface F, interface C> interface AFolder
  30. {
  31. // ...
  32. };
  33.  
  34. template <interface F, interface C> interface IFolder : public AFolder <F, C>
  35. {
  36. // ...
  37. };
  38.  
  39. template <interface F, interface C> mixin TFolder
  40. {
  41. // ...
  42. };
  43. };
  44.  
  45. using IFrameWindow = private_classes::IFrameWindow;
  46. using IClientWindow = private_classes::IClientWindow;
  47. using IFolder = private_classes::IFolder <private_classes::IFrameWindow,
  48. private_classes::IClientWindow>;
  49. using TFolder = private_classes::TFolder <private_classes::IFrameWindow,
  50. private_classes::IClientWindow>;
  51.  
  52. class WR Folder : public IFolder, private TFolder
  53. {
  54. friend class wps;
  55.  
  56. public:
  57. Folder (const char *title)
  58. {
  59. std::cout << title << std::endl;
  60. }
  61.  
  62. virtual ~Folder ()
  63. {
  64. ;
  65. }
  66.  
  67. // ...
  68.  
  69. ;
  70.  
  71. private:
  72.  
  73. // ...
  74.  
  75. ;
  76. };
  77.  
  78. class wps
  79. {
  80. public:
  81. static void setTitle (const IFolder WR &,
  82. const char *, const char * = nullptr);
  83.  
  84. // ...
  85.  
  86. ;
  87.  
  88. private:
  89.  
  90. // ...
  91.  
  92. ;
  93. };
  94.  
  95. void wps::setTitle (const IFolder WR &folder,
  96. const char *title, const char *docName)
  97. {
  98. std::cout << title << std::endl
  99. << docName << std::endl;
  100. }
  101.  
  102. // ...
  103.  
  104. };
  105.  
  106. using namespace WPShell;
  107.  
  108. int main ()
  109. {
  110. std::shared_ptr <Folder> folder (
  111. new Folder (
  112. "Hello, World!"
  113. )
  114. );
  115.  
  116. wps::setTitle (*folder, "Folder", "Icon view");
  117.  
  118. return 0;
  119. }
  120.  
Success #stdin #stdout 0s 4288KB
stdin
Standard input is empty
stdout
Hello, World!
Folder
Icon view