SlideShare uma empresa Scribd logo
1 de 10
わんくま同盟茶藝部顧問

episthmh

episteme@cppll.jp

Microsoft MVP for Visual C++ (2004~)
本日、CodeZine
に載りました♪
auto_ptr は deprecated
 make_unique (C++14) が
一足お先に Visual Studio 2013 に

{

unique_ptr<foo> pfoo(new foo(“adam”,10));
foo* p = pfoo.get();
pfoo->mem_fun();
(*pfoo).mem_fun();
…
// デストラクタが”内包するポインタ”をdeleteする
}
{

unique_ptr<foo[]> afoo(new foo[4]);
for ( int i = 0; i < 4; ++i ) {
afoo[i].mem_fun();
}
// デストラクタが”内包するポインタ”を
delete[]する
}
{

auto pfoo = make_unique<foo>(“adam”,10);
auto afoo = make_unique<foo[]>(4);
…
}
unique_ptr<foo> p;
unique_ptr<foo> q;
p = q; // error!(見た目はcopy/挙動はmove)
p = std::move(q); // OK
※ unique_ptr& operator=(const unique_ptr&) = delete;
そのかわり
unique_ptr& operator=(unique_ptr&&); // 右辺値参照!
namespace std {
template<class T,
class D=default_delete<T>>
class unique_ptr;
template<class T>
struct default_delete {
// ポインタを手放す際にコレ↓を発動する
void operator()(T* p) const { delete p; }
}
}
template<>
struct std::default_delete<FILE> {
void operator()(FILE* p) const
{ fclose(p); }
};
{
auto fp = unique_ptr<FILE>(fopen(“foo.txt”,”w”));
fprintf(fp.get(), “Hello, worldn”);
// 自動的に fclose!
}
{
typedef
unique_ptr<FILE,function<void(FILE*)>>
unique_file;

auto fp = unique_file(
fopen(“foo.txt”,”w”),
[](FILE* fp){fclose(fp);});
// 後始末のしかたをlambdaで与える
fprintf(fp.get(), “Hello, worldn”);
// 自動的に fclose!
}

Mais conteúdo relacionado

Destaque

Lecciones de japones basico i
Lecciones de japones basico iLecciones de japones basico i
Lecciones de japones basico iJose Gonzalez
 
Ronda (Malaga) con Alty desde Japón Ciudad encantada, vivi 10 años Paco Bar...
Ronda (Malaga) con Alty  desde Japón  Ciudad encantada, vivi 10 años Paco Bar...Ronda (Malaga) con Alty  desde Japón  Ciudad encantada, vivi 10 años Paco Bar...
Ronda (Malaga) con Alty desde Japón Ciudad encantada, vivi 10 años Paco Bar...B & M Co., Ltd.
 
Examen 1
Examen 1Examen 1
Examen 1gustavo
 
Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01Jeff Barrett
 
[0] diccionario japonés español
[0] diccionario japonés español[0] diccionario japonés español
[0] diccionario japonés españolB & M Co., Ltd.
 
Ser estar tener_hacer
Ser estar tener_hacerSer estar tener_hacer
Ser estar tener_hacerquijotear
 
BETC Pop - Culture is the social currency
BETC Pop - Culture is the social currencyBETC Pop - Culture is the social currency
BETC Pop - Culture is the social currencybetcpop
 
Cambiar números por letras en columnas de la hoja de calculo Excel 2013
Cambiar números por letras en columnas de la hoja de calculo Excel 2013Cambiar números por letras en columnas de la hoja de calculo Excel 2013
Cambiar números por letras en columnas de la hoja de calculo Excel 2013Jarol Cuarán
 
Optimisez votre profil LinkedIn
Optimisez votre profil LinkedInOptimisez votre profil LinkedIn
Optimisez votre profil LinkedInKarine Valgalier
 
Grupo 7 Disco Duro
Grupo 7 Disco Duro Grupo 7 Disco Duro
Grupo 7 Disco Duro WillemVanH
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatiqueCEFRI-UAC
 
Trabajo En Equipo
Trabajo En EquipoTrabajo En Equipo
Trabajo En Equipoguest537f2b
 

Destaque (20)

Tsubasa wo kudasai
Tsubasa wo kudasaiTsubasa wo kudasai
Tsubasa wo kudasai
 
Lecciones de japones basico i
Lecciones de japones basico iLecciones de japones basico i
Lecciones de japones basico i
 
Ronda (Malaga) con Alty desde Japón Ciudad encantada, vivi 10 años Paco Bar...
Ronda (Malaga) con Alty  desde Japón  Ciudad encantada, vivi 10 años Paco Bar...Ronda (Malaga) con Alty  desde Japón  Ciudad encantada, vivi 10 años Paco Bar...
Ronda (Malaga) con Alty desde Japón Ciudad encantada, vivi 10 años Paco Bar...
 
42課のに
42課のに42課のに
42課のに
 
Examen 1
Examen 1Examen 1
Examen 1
 
Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01Jml kanji-look-and-learn-121215034654-phpapp01
Jml kanji-look-and-learn-121215034654-phpapp01
 
Método personal japones
Método personal japonesMétodo personal japones
Método personal japones
 
Manual de limpieza japones
Manual de limpieza japonesManual de limpieza japones
Manual de limpieza japones
 
Partículas
PartículasPartículas
Partículas
 
[0] diccionario japonés español
[0] diccionario japonés español[0] diccionario japonés español
[0] diccionario japonés español
 
Ser estar tener_hacer
Ser estar tener_hacerSer estar tener_hacer
Ser estar tener_hacer
 
BETC Pop - Culture is the social currency
BETC Pop - Culture is the social currencyBETC Pop - Culture is the social currency
BETC Pop - Culture is the social currency
 
Cambiar números por letras en columnas de la hoja de calculo Excel 2013
Cambiar números por letras en columnas de la hoja de calculo Excel 2013Cambiar números por letras en columnas de la hoja de calculo Excel 2013
Cambiar números por letras en columnas de la hoja de calculo Excel 2013
 
Optimisez votre profil LinkedIn
Optimisez votre profil LinkedInOptimisez votre profil LinkedIn
Optimisez votre profil LinkedIn
 
Pics2
Pics2Pics2
Pics2
 
Grupo 7 Disco Duro
Grupo 7 Disco Duro Grupo 7 Disco Duro
Grupo 7 Disco Duro
 
1 introduction informatique
1 introduction informatique1 introduction informatique
1 introduction informatique
 
La Computadora
La ComputadoraLa Computadora
La Computadora
 
Axe industrie
Axe industrieAxe industrie
Axe industrie
 
Trabajo En Equipo
Trabajo En EquipoTrabajo En Equipo
Trabajo En Equipo
 

Mais de えぴ 福田

Mais de えぴ 福田 (7)

Yokohama6 epi
Yokohama6 epiYokohama6 epi
Yokohama6 epi
 
.NETラボ 2013-12-21 LT
.NETラボ 2013-12-21 LT.NETラボ 2013-12-21 LT
.NETラボ 2013-12-21 LT
 
Episteme variadic template
Episteme variadic templateEpisteme variadic template
Episteme variadic template
 
T77 episteme
T77 epistemeT77 episteme
T77 episteme
 
T45 episteme
T45 epistemeT45 episteme
T45 episteme
 
T69 episteme
T69 epistemeT69 episteme
T69 episteme
 
ぱっと見でわかるC++11
ぱっと見でわかるC++11ぱっと見でわかるC++11
ぱっと見でわかるC++11
 

Último

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 

Último (9)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 

Episteme unique_ptr