C++11 では、NULL に代わるものとして nullptr キーワードが追加されています。 この話を聞くと「NULL じゃだめなの?」と一度は思う人は少なく無いと思います。 そこで、今回は NULL と nullptr の違いについて書いてみたいと思います。 NULL じゃ出来ないことがある 今更言うことでもないですが、NULL は以下のようにマクロで定義されています。
![NULL と nullptr って何が違う? - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/0e489e4f1717571d245dfdf4e30dc300dc528494/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9TlVMTCUyMCVFMyU4MSVBOCUyMG51bGxwdHIlMjAlRTMlODElQTMlRTMlODElQTYlRTQlQkQlOTUlRTMlODElOEMlRTklODElOTUlRTMlODElODYlRUYlQkMlOUYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTJkNzBiNTEyYzRlMWEzM2E0YmFjMWQyZDM2MmU0ODgy%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwZ29fYXN0cmF5ZXImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTEzNTRmODMzNzhjMzZjNzQwZDEwZmMwMDk0YTQyOGY1%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D3122f21b81e1be2178ca447df1b63a60)
C++11 では、NULL に代わるものとして nullptr キーワードが追加されています。 この話を聞くと「NULL じゃだめなの?」と一度は思う人は少なく無いと思います。 そこで、今回は NULL と nullptr の違いについて書いてみたいと思います。 NULL じゃ出来ないことがある 今更言うことでもないですが、NULL は以下のようにマクロで定義されています。
先日,ついに C++11 の主要な機能を一通り実装した GCC-4.8.1 がリリースされた. もう一方の主要な C++ コンパイラである Clang++ でも C++11 の機能は既に全て実装されており, 来る 6/05 に最新版の Clang-3.3 がリリースされ, C++11 対応が完了する見通しだ.*1 このような状況においては, C++11 への乗り換えを検討し始めているプロジェクトも多いことだろう. さて, C++11 では, C++98/03 との互換性を保ちつつ,クラス設計に大きな影響を齎す変化が採用された. すなわち, Move Semantics である. この登場により, C++11 で「良い」とされるクラス設計は, C++98/03 時代とは若干 異なったものとなる. そこで,この記事では,筆者が C++11 において「良い」と考えているクラス設計を提案してみたい
この記事は Mac Dev JP Advent Calendar の参加記事 (6 日目) です。 はじめに この記事では、 Objective-C++ で C++11 を使用する例について紹介します。 Objective-C++ とは Objective-C++ は、プログラミング言語 Objective-C と C++ とを多重継承したような言語です。お互いの文法がかち合わないので、混在することができます。極稀に文法がコンフリクトしますが、個人的にはそれで困ったことはありません。文法的にほぼ直交し、お互いのオブジェクトを単なるポインタ値とみなしているため、混在させることができるのです。 Objective-C と C++ の機能をオーバーラップさせるようなことはできません。例えば、 Objective-C のクラスを C++ で継承したりするようなことはできません。 Objective
Today I’m excited to announce the official release of CUDA 7, the latest release of the popular CUDA Toolkit. Download the CUDA Toolkit version 7 now from CUDA Zone! CUDA 7 has a huge number of improvements and new features, including C++11 support, the new cuSOLVER library, and support for Runtime Compilation. In a previous post I told you about the features of CUDA 7, so I won’t repeat myself he
この記事では,前編に引き続き, C++14 のラムダ式について説明していく. 前編では,ラムダ式に対する大雑把な説明と,ラムダ式の持つ型推論機能を紹介した. この記事では,ラムダ式の最も重要な機能の一つである,変数のキャプチャについて説明したい. なお,初めて この記事を読む方は,先に前編を読むことをお勧する. 目次(再掲): ラムダ式の基礎 (前編で解説) ラムダ式の型推論(前編で解説) 変数のキャプチャ(この記事で解説) ラムダ式の活用法(執筆中) マニア向けの補足(執筆中) 変数のキャプチャ ラムダ式により生成されるクラスの operator() の関数本体は, this ポインタやメンバ変数・関数の扱いを除き,ラムダ式の本体と同じコードになる. // 例えば, auto f = [] (int x, int y) { return x + y; } // 上のコードは, struc
この記事は C++11 Advent Calendar 13 日目の記事です。 C++03 で用意されていた標準ライブラリは基本的にそのまま残っていたり deprecate されていたりとかぐらいしかありませんが、それでも少し仕様が変更されていたりとかしています。 後方互換性を維持するためあまりダイナミックな変更はされていませんが、それでも結構嬉しい変更だったりするので、覚えてる部分だけ紹介しておきます。(誰か一覧とか作ってくれませんかね?) のアルゴリズム関数に渡す関数オブジェクトの制限の緩和 C++03 では、 のアルゴリズム関数(accumulate, inner_product, partial_sum, adjacent_difference)に渡す関数オブジェクトでは、一切の副作用が禁止されていました。そのため、 struct Hoge { int operator()(int
これは C++11 Advent Calendar 2011 の 3 日目の記事です。*1 C++03 から C++11 になったことで大小さまざまな言語仕様拡張・変更がありましたが、それらが C++ におけるオブジェクト指向プログラミングをどう変えてゆくのか、現段階で思うところを書こうと思います。 ・プロローグ 「C++11 と魔法少女まどか☆マギカ」 C++11 の 11 は 2011年 のことです。そして魔法少女まどか☆マギカは 2011年 の日本を舞台にした大ヒットアニメです。偶然でしょうか?いいえ、これらが無関係なわけがありません。 さて、C++ に追加された機能で最も強力なのが右辺値参照だと思います。これについては gintenlabo(@SubaruG) さんや, alwei(@aizen76) さんが後日のアドベで詳細を書いてくれると思います。しかしそれら機能の多くはライブ
“C++11 feels like a new language.” – Bjarne Stroustrup The C++11 standard offers many useful new features. This page focuses specifically and only on those features that make C++11 really feel like a new language compared to C++98, because: They change the styles and idioms you’ll use when writing C++ code, often including the way you’ll design C++ libraries. For example, you’ll see more smart poi
どこかにまとまっていれば便利かなーと思いとりあえず、手元にあったのを簡単にまとめてみた。 [注意点] ネットで C++11 に関して調べる時の注意点ですが、古い言語仕様(C++0x)のまま書かれているコードが載っている事があります。 ブログの記事などを参考にする場合は投稿日を見て、最近の記事かどうかを確認しておくといいと思います。 [コーディングスタンダード] C++11 のコーディングスタンダード C++11 - the recently approved new ISO C++ standard 駆け足でC++11の概要 C++11 とオブジェクト指向 C++03 の仕様から変更のあったライブラリ [その他] C++0x総復習 Web 上での C++11 関連記事まとめ C++11 Advent Calendar 2011 C++Now! 2012
C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く