SlideShare une entreprise Scribd logo
1  sur  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!
}

Contenu connexe

En vedette

Lecciones de japones basico i
Lecciones de japones basico iLecciones de japones basico i
Lecciones de japones basico i
Jose Gonzalez
 
Examen 1
Examen 1Examen 1
Examen 1
gustavo
 
Ser estar tener_hacer
Ser estar tener_hacerSer estar tener_hacer
Ser estar tener_hacer
quijotear
 
Optimisez votre profil LinkedIn
Optimisez votre profil LinkedInOptimisez votre profil LinkedIn
Optimisez votre profil LinkedIn
Karine Valgalier
 
Grupo 7 Disco Duro
Grupo 7 Disco Duro Grupo 7 Disco Duro
Grupo 7 Disco Duro
WillemVanH
 
Trabajo En Equipo
Trabajo En EquipoTrabajo En Equipo
Trabajo En Equipo
guest537f2b
 

En vedette (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
 

Plus 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
 

Dernier

Dernier (10)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Episteme unique_ptr