<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: user19870</title>
    <description>The latest articles on DEV Community by user19870 (@user19870).</description>
    <link>https://dev.to/user19870</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3685641%2F9579b325-c9af-47a7-8e71-c5e8f07709ea.png</url>
      <title>DEV Community: user19870</title>
      <link>https://dev.to/user19870</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/user19870"/>
    <language>en</language>
    <item>
      <title>cppsp v1.5 --module system update</title>
      <dc:creator>user19870</dc:creator>
      <pubDate>Tue, 24 Feb 2026 15:59:50 +0000</pubDate>
      <link>https://dev.to/user19870/cppsp-v15-module-system-update-5dk8</link>
      <guid>https://dev.to/user19870/cppsp-v15-module-system-update-5dk8</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cppsp_compiler mod.cppsp -header&lt;/code&gt;&lt;/strong&gt; will generate .h file and turn int main(){...} a comment&lt;/li&gt;
&lt;li&gt;module.ini:C:...\modfolder1,c:...\modfolder1&lt;/li&gt;
&lt;li&gt;can use .cppsp mod by import

&lt;ul&gt;
&lt;li&gt;deepermod.cppsp still can use c++ header and .cppsp mod by import &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;support multi-level namespace for ＠custom xxx(...)&lt;/li&gt;

&lt;li&gt;import can also import .cppsp mods like&lt;code&gt;import a.b.mod&lt;/code&gt;|  &lt;strong&gt;a.b.mod represent the path a/b/mod.cppsp and path will be searched from parent path in module.ini&lt;/strong&gt; |  a.b.mod also generate namespace a{ namespace b{ namespace mod{...}}}&lt;/li&gt;

&lt;li&gt; &lt;code&gt;package&lt;/code&gt; : it is written in .cppsp, &lt;code&gt;package d.e.f&lt;/code&gt; will replace namespace generated by import a.b.c&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;use&lt;/code&gt; :  use namespaces like :&lt;code&gt;use a.b.c&lt;/code&gt;. "xxx" from ＠custom xxx(...) also affected by &lt;code&gt;use&lt;/code&gt; &lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>cppsp</category>
    </item>
    <item>
      <title>cppsp v1.4.5 - @custom: Like c/c++ Macros, but Safer and Namespaced!</title>
      <dc:creator>user19870</dc:creator>
      <pubDate>Tue, 10 Feb 2026 04:16:51 +0000</pubDate>
      <link>https://dev.to/user19870/cppsp-v145-custom-like-cc-macros-but-safer-and-namespaced-2mai</link>
      <guid>https://dev.to/user19870/cppsp-v145-custom-like-cc-macros-but-safer-and-namespaced-2mai</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/user19870/cppsp/blob/First/example/customSyntax.cppsp" rel="noopener noreferrer"&gt;&lt;code&gt;@custom xxx("...",&amp;lt;{...}&amp;gt;,...)&lt;/code&gt;&lt;/a&gt; : ＠custom can let users write own syntaxs. it is a transpile-time pattern-driven code generator with nested templates, namespace-scoped features &lt;strong&gt;"..." can generate code, &amp;lt;{...}&amp;gt; is similar to it but will become a placeholder and replaced by parameter when the custom syntax is called.&lt;/strong&gt; Code will generate in global and the inner of some cppsp keywords. namespace only accept one level like: &lt;code&gt;namespace n{ @custom.... }&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;If there is any "＠" is in ＠custom like &lt;code&gt;＠custom vec＠mn("std::vector&amp;lt;",&amp;lt;{type}&amp;gt;,"&amp;gt;")&lt;/code&gt;  vec＠mn will appear in main(){....}
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import iostream,vector
 @function&amp;lt;&amp;lt; class B{int aa;};&amp;gt;&amp;gt;
namespace fromcpp{
@custom  tem("template&amp;lt;typename T&amp;gt; ")
struct T  
//use struct to declare a type
}
 //c++ Generics
  fromcpp.tem()
function add(T a,T b) T{return a+b}
  //Generics with c++ template
@custom cs("&amp;lt; ",&amp;lt;{T}&amp;gt;," &amp;gt;")
 print(add cs(int) (1,2) )
 add cs(int)  (1,2) 


 //use cppsp template to generate STL container
@custom vec("std::vector&amp;lt;",&amp;lt;{T}&amp;gt;,"&amp;gt; ")
@custom decl(&amp;lt;{name}&amp;gt;,";")
@custom def(&amp;lt;{name}&amp;gt;,"=",&amp;lt;{value}&amp;gt;,";")
vec(int) ;decl(a)
vec(vec(char)); def(b,{{'a','b','c','d','e'}})
 //cppsp way to use Generics 
@custom subs(&amp;lt;{T}&amp;gt;," sub(",&amp;lt;{T a}&amp;gt;,",",&amp;lt;{T b}&amp;gt;,")"," {return a-b;}")
subs(int ,int a,int b)
function [sub]
print("\n",sub(3,4))
 @custom class("class ",&amp;lt;{T}&amp;gt;,"{",&amp;lt;{body}&amp;gt;,"};")
 class(obja,var a int
  var s,ss string
  var f float

 )
@custom auto("auto ",&amp;lt;{name}&amp;gt;," = [",&amp;lt;{cap}&amp;gt;,"]","(",&amp;lt;{param}&amp;gt;,")","{",&amp;lt;{body}&amp;gt;,";};")
if(true){
    auto(x,&amp;amp;,int a,return a+1)
    function [x]
    print("\n auto:",x(9))
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>cppsp</category>
    </item>
    <item>
      <title>cppsp v1.4 -- variables declaration with multi variables support : var a,b,c= 1,2,3 int</title>
      <dc:creator>user19870</dc:creator>
      <pubDate>Sat, 17 Jan 2026 12:22:09 +0000</pubDate>
      <link>https://dev.to/user19870/cppsp-v14-variables-declaration-with-multi-variables-support-var-abc-123-int-1d4b</link>
      <guid>https://dev.to/user19870/cppsp-v14-variables-declaration-with-multi-variables-support-var-abc-123-int-1d4b</guid>
      <description>&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;var&lt;/code&gt;.....&lt;code&gt;type&lt;/code&gt;: declare variables with/without values. Support multi variables and type can be written as &lt;code&gt;int/float/char/string/bool&lt;/code&gt;. &amp;lt;{1+1}&amp;gt; is a value but 1+1 not(it's expression) &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;var&lt;/code&gt;......&lt;code&gt;type&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import  string,iostream
var a,c,d =  1,
&amp;lt;{(2*2+6)/2}&amp;gt;
,4 int
var b = "hello world" string
var f1,f2,f3 float
var c1 char
var b1 = &amp;lt;{1+1==2}&amp;gt; bool
input(f1)
print(a," ",c," ",d," ",b," ",b1," ",f1)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
&lt;a href="https://dev.tourl"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>cppsp</category>
      <category>news</category>
      <category>tooling</category>
    </item>
    <item>
      <title>What is cppsp?</title>
      <dc:creator>user19870</dc:creator>
      <pubDate>Tue, 30 Dec 2025 08:38:26 +0000</pubDate>
      <link>https://dev.to/user19870/what-is-cppsp-1af7</link>
      <guid>https://dev.to/user19870/what-is-cppsp-1af7</guid>
      <description>&lt;h1&gt;
  
  
  cppsp
&lt;/h1&gt;

&lt;p&gt;cppsp -a transpiled script-like language base on c++&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;Download the cppsp_compiler.exe or compiler the sourcecode by yourself&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirement:prepare your own c++ compiler and set it's folder to environment path(environment variable)&lt;/li&gt;
&lt;li&gt;Requirement:a 64bits c++ compiler to make sure exe can be open&lt;/li&gt;
&lt;li&gt;Optional: put the folder path of exe/elf/mach-o to environment&lt;/li&gt;
&lt;li&gt;remember delete _mac/_linux to make cppsp_compiler works&lt;/li&gt;
&lt;li&gt;(Optional) rename cppsp_compiler.exe(or cppsp_compiler) to any name you like to change compile command like:cppsp、abcdef....&lt;/li&gt;
&lt;li&gt;Install from cmd/console:
#### Windows:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; cppsp_compiler.exe https://github.com/user19870/cppsp/raw/refs/heads/First/cppsp_compiler.exe
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Linux:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; cppsp_compiler https://github.com/user19870/cppsp/raw/refs/heads/First/cppsp_compiler_linux.delete_linux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Mac:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; cppsp_compiler https://github.com/user19870/cppsp/raw/refs/heads/First/cppsp_compiler_mac.delete_mac
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use cmd or other console to compiler .cppsp file:
&lt;code&gt;cppsp_compiler(if not in environment path:.\cppsp_compiler.exe or c:\...\cppsp_compiler.exe) script.cppsp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cppsp_compiler mod.cppsp -header&lt;/code&gt;&lt;/strong&gt; will generate .h file and turn int main(){...} a comment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cppsp_compiler new project&lt;/code&gt;&lt;/strong&gt;  : create new project with empty include.ini、lib.ini、module.ini、project.cppsp and setting current path in the three .ini&lt;/li&gt;
&lt;li&gt;Setting c++ include/lib/cppsp_mod folder by .ini file
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="err"&gt;include.ini:C:\...\include1,c:\...\include2&lt;/span&gt;
&lt;span class="err"&gt;lib.ini:C:\...\lib1,c:\...\lib2&lt;/span&gt;
&lt;span class="err"&gt;module.ini:C:\...\modfolder1,c:\...\modfolder2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Feature
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;can compile when there is only print("hello world") in .cppsp&lt;/li&gt;
&lt;li&gt;can use almost c++ header by import&lt;/li&gt;
&lt;li&gt;can use .cppsp mod by import

&lt;ul&gt;
&lt;li&gt;deepermod.cppsp still can use c++ header and .cppsp mod by import &lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;user-custom syntaxs by pattern-driven, nested, namespace-scoped templates &lt;/li&gt;

&lt;li&gt;can use c++ code  by @inject and @function&lt;/li&gt;

&lt;li&gt;enable indentation and multi-line after v1.3&lt;/li&gt;

&lt;li&gt;declare multi variables with &lt;code&gt;var&lt;/code&gt;.....&lt;code&gt;type&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;control variables inside keyword or globle&lt;/li&gt;

&lt;li&gt;Can use utf8 encoding bytes as alternative of filename: &lt;code&gt;cppsp_compiler \xe9\x80\x99\xe6\x98\xaf\x20\xe4\xb8\xad\xe6\x96\x87\x68\x75\x20\x6b\x6f\x6c\x20\x20\x70\xe6\xaa\x94\xe6\xa1\x88\x2e\x63\x70\x70\x73\x70&lt;/code&gt;
&lt;/li&gt;

&lt;li&gt;Enable compile filename encoded by utf8(I try my best but some devices may not work.)
&lt;h2&gt;
  
  
  Keyword&lt;/h2&gt;
&lt;/li&gt;



&lt;li&gt;
&lt;code&gt;#useclang&lt;/code&gt; or &lt;code&gt;#usegcc&lt;/code&gt; : use clang++ or g++ compile command&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;@command("...")&lt;/code&gt;: add command when compile like:-Os、-m64&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;#overwrite&lt;/code&gt;:make &lt;code&gt;@command()&lt;/code&gt; overwrite g++ .... or clang++ compile command like &lt;code&gt;@command("g++ -Os -m64 -nostdlib  -shared   -o dll.dll dll.cpp")&lt;/code&gt; and add "&lt;em&gt;/"  after int main(){..} also add "/&lt;/em&gt;" in front of int main(){..} &lt;/li&gt;

&lt;li&gt; &lt;code&gt;#skipcompile&lt;/code&gt; : skip g++/clang++ compile and directly run output&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;import&lt;/code&gt; :import header in c++ and accept import iostream,cstdio,x,y,.....

&lt;ul&gt;
&lt;li&gt;import can also import .cppsp mods like&lt;code&gt;import a.b.mod&lt;/code&gt;|  &lt;strong&gt;a.b.mod represent the path a/b/mod.cppsp and path will be searched from parent path in module.ini&lt;/strong&gt; |  a.b.mod also generate namespace a{ namespace b{ namespace mod{...}}}&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;package&lt;/code&gt; : it is written in .cppsp, &lt;code&gt;package d.e.f&lt;/code&gt; will replace namespace generated by import a.b.c&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;@function&amp;lt;&amp;lt;...&amp;gt;&amp;gt;&lt;/code&gt;: inject everything(void()、int()、bool()、even #define and using namespace) in &amp;lt;&amp;lt;...&amp;gt;&amp;gt; to the space under #include above int main().&lt;strong&gt;Better not put any word, symbol or blanks but enalbe "enter" or nothing after "&amp;gt;&amp;gt;" to make difference between operation like &lt;code&gt;a&amp;gt;&amp;gt;b&lt;/code&gt; and &amp;lt;&amp;lt;....&amp;gt;&amp;gt;&lt;/strong&gt;
&lt;/li&gt;

&lt;li&gt; &lt;code&gt;@inject(...)&lt;/code&gt; :inject everything in (...) to int main(){...}  ----&lt;code&gt;＠inject(....)&lt;/code&gt;and &lt;code&gt;＠inject("....")&lt;/code&gt; are both legal. ＠inject(....) belonging to line ast and ＠inject("....") belonging to token ast  but ＠inject(....) will be transpiled before ＠inject("....") and any keyword belonging to token ast.)&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;print()&lt;/code&gt;: print content to console like print("12\n"," ",1," ",2.1,true,false," ")&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;input()&lt;/code&gt;: input data to variables&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;var&lt;/code&gt;.....&lt;code&gt;type&lt;/code&gt;: declare variables with/without values. Support multi variables and type can be written as &lt;code&gt;int/float/char/string/bool&lt;/code&gt;. &amp;lt;{1+1}&amp;gt; is a value but 1+1 not(it's expression)&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;if/else/else if/while(...){...}&lt;/code&gt;:similar to "if/else/else if" in c++ but enable syntax: &lt;code&gt;if(input(x)&amp;gt;1)&lt;/code&gt;. Can write cppsp keywords and operation( =,+,-,&lt;em&gt;,/,++....) in {...}&lt;/em&gt;
&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;for(...){...}&lt;/code&gt;:similae to "for" in c++ like for( type i=0,i&amp;lt;10,i++), for(type i=0,j=10;i&amp;lt;10&amp;amp;&amp;amp;j&amp;gt;0;i++,j++) or for(type i:x) . Can write cppsp keywords and operation( =,+,-,,/,++....) in {...}&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;function f()...&lt;/code&gt;:&lt;code&gt;function f() type {...return...}&lt;/code&gt; will define a function with type, &lt;code&gt;function f(){...}&lt;/code&gt; will define a void function,&lt;code&gt;function f()&lt;/code&gt; will declare a void function, &lt;code&gt;function f(){...return...}&lt;/code&gt;  will define a function with auto in c++. &lt;a href="//example/functionTest.cppsp"&gt;Usages&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;sort&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;sqrt&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;// will regist functions from c++&lt;/span&gt;
&lt;span class="c1"&gt;// but template function still need &amp;lt;{...}&amp;gt; like  std::sort(x,x+5,&amp;lt;{ std::greater&amp;lt;int&amp;gt;()}&amp;gt;) &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="//example/Usecppfunction.cppsp"&gt;Usecppfunction&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="//example/structtest.cppsp"&gt;&lt;code&gt;struct S{...}&lt;/code&gt;&lt;/a&gt; : define a structure and the name of structure will become a type ,so can use something like var....S. If write &lt;code&gt;struct a b c&lt;/code&gt;without &lt;code&gt;{}&lt;/code&gt; a ,b, and c will become type but won't generate any c++ code&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/user19870/cppsp/blob/First/example/customSyntax.cppsp" rel="noopener noreferrer"&gt;&lt;code&gt;@custom xxx("...",&amp;lt;{...}&amp;gt;,...)&lt;/code&gt;&lt;/a&gt; : ＠custom can let users write own syntaxs. it is a transpile-time pattern-driven code generator with nested templates, namespace-scoped features &lt;strong&gt;"..." can generate code, &amp;lt;{...}&amp;gt; is similar to it but will become a placeholder and replaced by parameter when the custom syntax is called.&lt;/strong&gt; Code will generate in global and the inner of some cppsp keywords. &lt;code&gt;namespace n{ @custom.... }&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt; If there is any "＠" is in ＠custom like &lt;code&gt;＠custom vec＠mn("std::vector&amp;lt;",&amp;lt;{type}&amp;gt;,"&amp;gt;")&lt;/code&gt;  vec＠mn(...) will generate code in main(){....}
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;custom&lt;/span&gt; &lt;span class="n"&gt;subs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" sub("&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;","&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;")"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" {return a-b;}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;subs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;use&lt;/code&gt; :  use namespaces like :&lt;code&gt;use a.b.c&lt;/code&gt;. "xxx" from &lt;a class="mentioned-user" href="https://dev.to/custom"&gt;@custom&lt;/a&gt; xxx(...) also affected by &lt;code&gt;use&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;use a.b.c-&amp;gt;d&lt;/code&gt; can use function/struct/other in namespace a.b.c but not use the whole namespace
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;
&lt;code&gt;//&lt;/code&gt;:comment
&lt;h2&gt;
  
  
  Syntax&lt;/h2&gt;
&lt;/li&gt;



&lt;li&gt;control variables in cppsp once a line or separate by &lt;code&gt;;&lt;/code&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;4.6&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;{...}&amp;gt;&lt;/code&gt; : c++ code or everything in &amp;lt;{...}&amp;gt; will become an element of cppsp keyowds like  :
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;iostream&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;var&lt;/code&gt;......&lt;code&gt;type&lt;/code&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt;  &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;iostream&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;  &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"hello world"&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;f2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;f3&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;c1&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;b1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;bool&lt;/span&gt;
&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;b1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;array and operation:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;iostream&lt;/span&gt;
&lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;inject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"x[0]=3;x[1]=2; x[2]=1;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  OOP
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Inheritance : enable single and multi inheritance, use &lt;code&gt;public: a, b,c&lt;/code&gt; inheritance in c++
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;local&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;extension_slot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;der&lt;/span&gt; &lt;span class="nf"&gt;derive&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cppsp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mytype&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;local&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;vector&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Extension : used to extend a struct
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;cppsp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cpp17&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;test&lt;/span&gt;

&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;local&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;private:&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;f1&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;f2&lt;/span&gt;&lt;span class="p"&gt;(){}&lt;/span&gt;
    &lt;span class="n"&gt;var&lt;/span&gt; &lt;span class="n"&gt;outv&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;
    &lt;span class="nf"&gt;extension_slot&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nc"&gt;extension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;m1&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;m2&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nf"&gt;extension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cppsp.test.mytype"&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;n1&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"test1&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;struct&lt;/span&gt; &lt;span class="nf"&gt;extension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"local"&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;m3&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
        &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"test2&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;local&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;
&lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;m3&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;cppsp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mytype&lt;/span&gt; &lt;span class="n"&gt;oo&lt;/span&gt;
&lt;span class="n"&gt;oo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;n1&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Warning ⚠️
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cannot accept any space/blank before keyword before v1.2! &lt;/li&gt;
&lt;li&gt;No multi-line before v1.3!&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;＠command()&lt;/code&gt; will never be multi-line but you can use following as an alternative
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="err"&gt;＠&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"-f1 -f2 ..... -f5"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="err"&gt;＠&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"-f6 -f7 ....-f10"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with &lt;code&gt;＃overwrite&lt;/code&gt; command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="err"&gt;＠&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"g++ -Os -m64 -nostdlib  -shared "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="err"&gt;＠&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" -o dll.dll dll.cpp"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt; &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"hello world"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;another exmaple:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"-mtune=native   -fomit-frame-pointer -static-libgcc   -ffunction-sections -fdata-sections -Wl,--gc-sections  -Wl,--as-needed  -s  -Wl,--strip-all  -Os -m64"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;iostream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;vector&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"12&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;2.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;" "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s"&gt;"abc"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;//abv&lt;/span&gt;
&lt;span class="c1"&gt;//print(1.1)&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;inject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;auto&lt;/span&gt; &lt;span class="n"&gt;is_bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[](&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"true"&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"false"&lt;/span&gt;&lt;span class="p"&gt;;};)&lt;/span&gt;
&lt;span class="n"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;cls&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;vector&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;cars&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Volvo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"BMW"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Ford"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Mazda"&lt;/span&gt;&lt;span class="p"&gt;};};&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;simple dll
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#overwrite
&lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;command&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"g++ -Os -m64 -nostdlib  -shared   -o dll.dll dll.cpp"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;extern&lt;/span&gt; &lt;span class="s"&gt;"C"&lt;/span&gt; &lt;span class="kr"&gt;__declspec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dllexport&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;a href="//example/swap.cppsp"&gt;swap&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cppsp</category>
      <category>programming</category>
      <category>cpp</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
