SlideShare ist ein Scribd-Unternehmen logo
1 von 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!
}

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Mehr von えぴ 福田

Mehr von えぴ 福田 (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
 

Episteme unique_ptr