рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдРрд╕реЗ рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдирдореЗрдВ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рджреЗрдЦрддрд╛ред рдпрд╣рд╛рдВ, рджреЛ рдЫреЛрдЯреЗ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╡рд╛рдЪрд╛рд░ рд╣реИрдВ - рд╕реА ++ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд▓рд┐рдВрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдФрд░ рд░рд╕реНрдЯ рд╕реЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдФрд░ рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рдХреА "рдЙрдзрд╛рд░ рд▓реА рдЧрдИ" рдкреНрд░рдгрд╛рд▓реА (рджреВрд╕рд░рд╛ рдбреАрдПрдлрдП рдирд┐рдЧрд▓, рдЬреАрд╕реАрд╕реА 10 рдореЗрдВ рдЕрднреА рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдЖрдпрд╛ рдерд╛, рдФрд░ рдирд┐рдо рднреА рдПрдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдХрд┐рд╕реА рднреА рдердХрд╛рдК рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд▓рд┐рдВрдХ рдореВрд▓ рддрдХ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВредрд╕реВрдЪреА рдХрд╛ рдкрд┐рдЫрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 2.0.91.1 (рд╕рдВрд▓рдЧреНрди)рдЬрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП2.092.0 15 рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ 44 рдмрдЧ рдлрд┐рдХреНрд╕ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдордиреЗ рдЖрдПред 47 рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд░рд┐рд▓реАрдЬ рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛редрд╕рдВрдХрд▓рдХ рдкрд░рд┐рд╡рд░реНрддрди
- -Revert = import рдФрд░ -transition = checkimports рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрд╡рд┐рдЪ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП
- C ++ GNU ABI рдирд╛рдореЛрдВ рдХреА рдХреЛрдбрд┐рдВрдЧ (рдореИрдиреНрдЧреНрд░рд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╕рдорд░реНрдерди
- рдмрд╛рд╣рд░реА (рдбреА) рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рд╣реИрдВ
- DIP25 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдЙрд▓реНрд▓рдВрдШрди
- рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдФрд░ рдЙрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА
- рдЬреЛрдбрд╝рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдХрд┐ рдореЗрдВ -preview = рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдореЗрдВ рдореЗрдВ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╕реНрдерд┐рд░рд╛рдВрдХ
- рдкреНрд░рд┐рдВрдЯрдлрд╝ рдФрд░ рд╕реНрдХреИрдирдлрд╝ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрдм рдкреНрд░рд╛рд░реВрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдХ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ SOURCE_DATE_EPOCH рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИред
рд░рдирдЯрд╛рдЗрдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
- TypeInfo_Class/TypeInfo_Interface.isBaseOf C#/Java isAssignableFrom
- core.memory.pageSize minimumPageSize
- Date.isoWeekYear Date.fromISOWeek std.datetime.date
- std.xml
- std.digest.digest
Dub
- Dub lint --report-file
рд╕реБрдзрд╛рд░реЛрдВ рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА (рдЗрдВрдЬреА ред) рдиреЛрдЯ ред рдореЗрд░реЗ рдкрд╛рд╕ рдкрдВрдЬреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЗрдВрдЯреНрд░рд╛-рдкреЗрдЬ рд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓, рдЦреЗрдж = (рд╕рдВрдХрд▓рдХ рдкрд░рд┐рд╡рд░реНрддрди
- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реНрд╡рд┐рдЪ -revert = рдЖрдпрд╛рдд рдФрд░ -transition = рдЪреЗрдХрдЗрдордкреЛрд░реНрдЯ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рд╣реИрдВред
рдЗрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдм рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдкрд╛рдПрдВрдЧреЗред - () C++ GNU ABI
GNU ABI C++11 GCC 5.1. D C++, DMD UDA ( ) gnuAbiTag, core.attribute object ( ). ABI , , ++ . , std::string C++11 (DMD -extern-std={c++11,c++14,c++17}).
:
extern(C++):
@gnuAbiTag("tagOnStruct")
struct MyStruct {}
@gnuAbiTag("Multiple", "Tags", "On", "Function")
MyStruct func();
gnuAbiTag. ( ). UDA -extern-std=c++11. (-extern-std=c++98) UDA . UDA extern(C++) . - , extern(D) .
( ) , extern(D), . , , / , , 479, 479, .
, , . - DIP25 .
DIP25 2.067.0, , -preview=dip25. , , DIP1000.
, , -preview=dip25, -preview=dip25. ( ).
DIP25 , @ safe . , ref , return , .
struct Foo
{
int x;
ref int method() { return this.x; }
}
ref int identity( ref int v) { return v; }
return . DIP25 . - -preview=in in scope const.
const scope, in . , in (. inout ) .
-preview=in, :
void fun(in int x);
void fun(const int x);
-preview=in, :
void fun(in int x);
void fun(scope const int x);
- printf scanf
C99 7.19.6.1 printf 7.19.6.2 scanf.
printf , . , .
scanf .
:
- ,
- ,
- тАФ , s
- C99
-, .
.
, printf/scanf, :
printf("%k\n", value);
const format = "%k\n";
printf(format.ptr, value);
тАФ . ,
string s;
printf("%.*s\n", s.length, s.ptr);
printf("%d\n", s.sizeof);
ulong u;
scanf("%lld%*c\n", &u);
:
string s;
printf("%.*s\n", cast(int) s.length, s.ptr);
printf("%zd\n", s.sizeof);
ulong u;
scanf("%llu%*c\n", &u);
printf scanf pragma(printf) printf pragma(scanf) scanf.
, :
- extern (C ) extern (C++)
- const(char)*
- тАж -v , va_list ( ┬лv┬╗ printf scanf)
.
┬лv┬╗- .
- SOURCE_DATE_EPOCH
SOURCE_DATE_EPOCH. UNIX ( 1970-01-01 00:00:00), . DMD __DATE__, __TIME__ __TIMESTAMP__ .
рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рдорд┐рддреНрд╡ / рдЙрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА (рдЬрд┐рд╕реЗ рдУрдмреА рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбреАрдПрдлрд╝рд░реНрдб рдкреЙрдЗрдВрдЯрд░реНрд╕ рдПрдХ рд╡реИрдз рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВредрдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдУрдмреА рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рджрд╛рдпрд░рд╛
рдпрд╣ рдУрдмреА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реИ, рдЬреЛ рдбреАред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рди рдХрд┐ рдЧрддрд┐рд╢реАрд▓ рд╕рд░рдгрд┐рдпреЛрдВ, рд╡рд░реНрдЧ рд╕рдВрджрд░реНрднреЛрдВ, рд╕рдВрджрд░реНрднреЛрдВ рдпрд╛ рд╕реВрдЪрдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред RAII рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ OB рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЪрд╛рд╣реЗ рд╕реВрдЪрдХ рдЬреАрд╕реА рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдУрдмреА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд╡реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рдЪрд╛рди рдпреЛрдЧреНрдп рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВредOB рдкреНрд░рдгрд╛рд▓реА рдХреЗрд╡рд▓ @ рд▓рд╛рдЗрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЬреИрд╡рд┐рдХ рдкрджрд╛рд░реНрдереЛрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЙрддреНрдкрдиреНрди рдХреЛрдб рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ @ рд▓рд╛рдЗрд╡ рдлрд╝рдВрдХреНрд╢рдВрд╕ @ рд▓рд╛рдЗрд╡ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпреЗ рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдХ @ рд▓рд╛рдЗрд╡- рд╕рдВрдЧрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЧреИрд░ рд╣реИрдВ @ рд▓рд╛рдЗрд╡ рдХрд╛рд░реНрдпреЛрдВ рдлреЛрди @ рд▓рд╛рдЗрд╡ рдХрд╛рд░реНрдпреЛрдВ рдкрд╛рд░рд┐рдд рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд▓рд╛рдЗрд╡ @ рд╕рдореНрдореЗрд▓рдиреЛрдВ редOB рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ:- dereferencing рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЬреЛ рдЕрдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ
- рдореНрдпреВрдЯреЗрдб рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рдкреЙрдЗрдВрдЯрд░ред
рдпрд╣ рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рд╢реВрдиреНрдп рд╕реВрдЪрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдПрдЧрд╛ред рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЧреИрд░-рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИредрдУрдмреА рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд
рдУрдмреА рдбрд┐рдЬрд╛рдЗрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ:рдкреНрд░рддреНрдпреЗрдХ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореНрдпреВрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрдИ рдиреЙрди-рдореНрдпреВрдЯрд┐рдВрдЧ (рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП) рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредрдбрд┐рдЬрд╝рд╛рдЗрди
рдПрдХ рдПрдХрд▓ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдХ рдХреЛ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ "рдорд╛рд▓рд┐рдХ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдПрдХ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдореЗрдореЛрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдпрд╛рдиреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЧреНрд░рд╛рдл) рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдкреЙрдЗрдВрдЯрд░ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреЙрдЗрдВрдЯрд░реНрд╕ (рдореНрдпреВрдЯрд┐рдВрдЧ рдпрд╛ рдирд╣реАрдВ) рдХреЗ рдкреИрд░реЛрдВ рдХреЗ рдиреАрдЪреЗ рдХреА рдорд┐рдЯреНрдЯреА рдХреЛ рдЦрдЯрдЦрдЯрд╛рдП рдмрд┐рдирд╛, рдореЗрдореЛрд░реА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдЖрдХрд╛рд░, рдЖрд╡рдВрдЯрди, рдореБрдлреНрдд рдФрд░ рдЖрдХрд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ) рд╕реНрдореГрддрд┐) рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВредрдпрджрд┐ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдХрдИ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ, рддреЛ рд╡реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдЕрдЪрд╛рдирдХ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВредрдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдмрд╛рдХреА рд╡рд┐рд╡рд░рдг рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХрд┐ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдФрд░ рдЕрдорд╛рдиреНрдп рдХреИрд╕реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдУрдмреА рдХреЗ рдХреЛрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░реНрд╕рдХреЗрд╡рд▓ рдЙрди рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реИрдВ рдЬреЛ @ рд▓рд╛рдЗрд╡ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрд╕ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ , рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЯреНрд░реИрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ @ рд▓рд╛рдЗрд╡ рднреА , рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЗрд╡рд▓ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд░ рдирд╣реАрдВред рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ const рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрд╕реВрдЪрдХ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрдХ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╣реИ:рдЕрдкрд░рд┐рднрд╛рд╖рд┐рддрд╕реВрдЪрдХ рдЕрдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдбреАрдлреНрд░реЗрдВрд╕рд┐рдВрдЧ рдХрд░рдирд╛ рдПрдХ рдЧрд▓рддреА рд╣реИредрдорд╛рд▓рд┐рдХрд╕реНрдореГрддрд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдВрдХреЗрддрдХ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕реВрдЪрдХ - рдорд╛рд▓рд┐рдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рдЧреБрдВрдЬрд╛рдЗрд╢ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ ред рдпрджрд┐ рд╕реНрдХреЛрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдПрдХ рдРрд╕реЗ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдУрдирд░ рдмрди рдЬрд╛рддрд╛ рд╣реИредрдпрджрд┐ рдорд╛рд▓рд┐рдХ рдХрд╛ рд╕реВрдЪрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реВрдЪрдХ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕реНрд╡рд╛рдореА, рддреЛ рдкрд╣рд▓реЗ рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИредрдЙрдзрд╛рд░рдПрдХ рдЙрдзрд╛рд░ рдкреЙрдЗрдВрдЯрд░ рдПрдХ рдРрд╕рд╛ рдкреЙрдЗрдВрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдореЗрдореЛрд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЧреНрд░рд╛рдл рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдкреЙрдЗрдВрдЯрд░ рдмрди рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдкреЙрдЗрдВрдЯрд░ - рдУрдирд░ рд╕реЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдорд╛рд▓рд┐рдХ рдЙрдзрд╛рд░рдХрд░реНрддрд╛ рдХреЗ рд╕реНрдЯреЗрдЯ рдореЗрдВ рддрдм рддрдХ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрдзрд╛рд░ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛редрдПрдХ рдЙрдзрд╛рд░ рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рдПрдХ рд╕реНрдХреЛрдк рдЧреБрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рдореНрдпреВрдЯреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП редрдкрдврд╝реЗрдВ-рдУрдирд▓реА рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ Read- рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рддрдХ рд░реАрдб-рдУрдирд▓реА рдкреЙрдЗрдВрдЯрд░ рдЬреАрд╡рд┐рдд рд╣реИ, рдХреЗрд╡рд▓ рд░реАрдб-рдУрдирд▓реА рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЕрднреА рднреА рдЗрд╕ рдУрдирд░ рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд░реАрдб-рдУрдирд▓реА рдкреЙрдЗрдВрдЯрд░ рдореЗрдВ рд╕реНрдХреЛрдк рдЧреБрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдПрдХ рдореНрдпреВрдЯреЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдЬреАрд╡рди рдХрд╛рд▓"рдЙрдзрд╛рд░" рдпрд╛ "рд░реАрдб-рдУрдирд▓реА" рд╕рдВрдХреЗрддрдХ рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ рдкрд╣рд▓реЗ dereferenced рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдХреЛрдИ рдорд╛рди рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдЙрд╕ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореВрд▓реНрдп рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рдбрд┐рд░реЗрд▓ рд╣реЛрддрд╛ рд╣реИредрдЗрд╕реЗ рдиреЙрди-рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ редрдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рдирдПрдХ рдкреЙрдЗрдВрдЯрд░ рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рддрдм рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:- рдЗрд╕рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдХ рдкрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░), рдЬреЛ рд╕реВрдЪрдХ рдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ
- рдЖрд░рдВрднреАрдХрд░рдг (рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)
- рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ - рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рдкреЙрдЗрдВрдЯрд░реНрд╕ рдЙрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рднрдВрдбрд╛рд░рдг рд╡рд░реНрдЧ рдкрд░ рднреА
- out ( ), , .
- ref , , .
- , .
- - ()
- , , .
- , ,
- , ,
- ,
рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдРрд╕реЗ рдХрдИ рдкрд╣рд▓реВ рд╣реИрдВ рдЬрд┐рди рдкрд░ рдЕрднреА рддрдХ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рддрдм рддрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдпрд╣ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИредрдЧрд▓рддрд┐рдпрд╛рдБрдХрдИ рдЧрд▓рддрд┐рдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИрдВред рдХреГрдкрдпрд╛ рдЙрдиреНрд╣реЗрдВ "рдСрдЙрдВрд╕" рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдмрдЧрдЬрд╝рд┐рд▓рд╛ рдФрд░ рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рдЕрдиреНрдп рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВредрд╡рд░реНрдЧреЛрдВ рдФрд░ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЬреАрд╕реА рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВредрдЧреИрд░-рдорд╛рд▓рд┐рдХреЛрдВ рд╕реЗ рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗрд▓рд┐рдП рд▓реАрдХ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╕рдВрдХреЗрддрдХ рдирд╣реАрдВред рдЙрдзрд╛рд░рдХрд░реНрддрд╛рдУрдВ рдХреЛ рдорд╛рд▓рд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдПрдХ рд╕реВрдЪрдХ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред@live void uhoh()
{
scope p = malloc();
scope const pc = malloc();
}
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреЗрдд рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ , рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд▓рд╛рдЬ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдиреЗрд╕реНрдЯреЗрдб рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдкрдврд╝рд╛ / рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЯреНрд░реИрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред@live void ohno()
{
auto p = malloc();
void sneaky() { free(p); }
sneaky();
free(p);
}
рдЕрдкрд╡рд╛рджрд╡рд┐рд╢реНрд▓реЗрд╖рдг рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХреЗ рдЧрдП рд╣реИрдВред@live void leaky()
{
auto p = malloc();
pitcher();
free(p);
}
рдПрдХ рд╕рдорд╛рдзрд╛рди рдЧреБрдВрдЬрд╛рдЗрд╢ (рдирд┐рдХрд╛рд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ :@live void waterTight()
{
auto p = malloc();
scope(exit) free(p);
pitcher();
}
рдпрд╛ рддреЛ RAII рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рдХреЗрд╡рд▓ nothrow рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВредрдЖрд▓рд╕реА рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрджреНрд╡рд┐рдШрд╛рдд рдЬрдЯрд┐рд▓рддрд╛рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг рджреНрд╡рд┐рдШрд╛рдд рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, @ рд▓рд╛рдЗрд╡ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЫреЛрдЯрд╛ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ редрдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрдореЛрд░реА рд╕рдореВрд╣реЛрдВ рдХреЛрдорд┐рд▓рд╛рдХрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЗрдореЛрд░реА рдкреВрд▓ рдХрд╛ рдорд┐рд╢реНрд░рдг :void* xmalloc(size_t);
void xfree(void*);
void* ymalloc(size_t);
void yfree(void*);
auto p = xmalloc(20);
yfree(p);
рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛редрдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:U* umalloc();
void ufree(U*);
V* vmalloc();
void vfree(V*);
auto p = umalloc();
vfree(p);
рдФрд░ рд╕рдВрднрд╡рддрдГ @ рд▓рд╛рдЗрд╡ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ ред рдПрдХ рдЪрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ
рддрд░реНрдХ рдПрдХ рдЪрд░ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдВрдЯрдл) рдХрд╛ рд╕реЗрд╡рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рдпрд╣ рдмрд╣реБрдд рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАредрд░рдирдЯрд╛рдЗрдо рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ
- TypeInfo_Class/TypeInfo_Interface.isBaseOf C#/Java isAssignableFrom.
TypeInfo_Class.isBaseOf true, , , , . isBaseOf, isAssignableFrom, , opAssign D тАФ . TypeInfo_Interface.isBaseOf , TypeInfo_Class, TypeInfo_Interface. - core.memory.pageSize minimumPageSize.
pageSize .
import core.memory : pageSize;
ubyte[] buffer = new ubyte[pageSize];
minimumPageSize .
, . , . pageSize, .
, , , : ubyte[minimumPageSize].
import core.memory : minimumPageSize;
ubyte[minimumPageSize] buffer;
- Date.isoWeekYear Date.fromISOWeek std.datetime.date
ISO 8601 , Date and DateTime.
ISO , . Date.fromISOWeek(2020, 11, DayOfWeek.mon) Date(2020, 3, 9).
ISO , () .isoWeekYear Date ISO. , .isoWeekAndYear , . - std.xml .
std.xml . , , UndeaD. xml dub- dxml. - std.digest.digest .
2.076.1 . std.digest .
std.digest.digest 2.101.
Dub
- .
Posix , .dub. dub (, .swap.file.d), . , dub . , dub.
, . - Dub lint --report-file.
Dub lint --report-file: dub lint --report-file report.json