タグ

C++とc++に関するadvblogのブックマーク (168)

  • 板挟み

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 27327 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆

  • C/C++ 免許制はどうですか?

    C/C++ の将来性 その 4 の続き 過去の資産を継承するためにC/C++しか選択肢が無い、かと言って適切な人材をアサイン出来ない場合そうなるのは仕方ないってのが現実ですよね。 # それが良いとは言いませんが C/C++でなければいけない案件は現実的に存在します。ちゃっぴさん的にはどうすればよいと思いますか? Programmer 免許制について以前は否定的だったんですが、C/C++ や assembler のような low level を扱う言語に対しては免許制導入したほうがいいと思います。 というのは、 他の言語に比べ脆弱性が生じやすい 他の言語に比べ脆弱性が生じた場合の影響が甚大 という状況があるからです。 多くの方が同意されることでしょうけど C/C++ は素人が扱える言語ではありません。 (security 面も含んで) まともに動作させるためにはものすごく深い知識を必要としま

    advblog
    advblog 2008/12/13
  • C/C++ の将来性 その 4

    だいぶ時間が空いてしまいました。。。すいません。 また、題名とかなり乖離した内容になってます。すいません。 とりあえず、有言不実行の予告を書いておくと、次で oganac さんの意見に反論します。 の続きです。 ちゃっぴさんの前提は、「スキルの乏しい人がC/C++を使うと凶器になるから使わせないようにすべき」ですよね。 私は、「スキルの乏しい人」にはC/C++仕事が回らないので、凶器になる局面は生まれないと考えてます。 いろいろなところ見てますが、当にひどいところでは人が望む望まないに関わらず、とりあえず「ヤレ!」ってのが結構あったりします。どうでしょうか? 少なくとも、使い物になったかは別として、数十人のど素人が C/C++ な projects に投入されたことをしっています。 逆に C# や Java や VB がちょっとできる人が次の案件として長い勉強期間を置かずに C/C+

    advblog
    advblog 2008/12/13
  • C++でMaybeモナドを返すlookup関数を作ってみた - Faith and Brave - C++で遊ぼう

    ネタ元:C++でMaybeモナド shand/maybe.hpp #ifndef SHAND_MAYBE_INCLUDE #define SHAND_MAYBE_INCLUDE #include <boost/variant.hpp> #include <boost/utility/result_of.hpp> #include <boost/bind.hpp> #include <algorithm> #include <utility> #include <vector> #include <ostream> namespace shand { class nothing {}; template <class T> class just { public: T val; just(const T& val) : val_(val) {} }; template <class T> s

    C++でMaybeモナドを返すlookup関数を作ってみた - Faith and Brave - C++で遊ぼう
  • http://d.hatena.ne.jp/hirayasu_is/20081209

    advblog
    advblog 2008/12/11
  • strcpyの挙動 - もっちの普段

    Visual C++ 2005 でのstrcpyの挙動に、不思議な点がある。 char buf[256]; char src[] = "Text copy test."; memset(buf, 0, 256); strcpy(buf, src); 以上のようなコピーを行った場合、 buf に "Text copy test." が入っているかと思うが、 最後の '\0' 以降の値が、0埋めしていたにも関わらず、 なぜか 0xFD で埋まってしまう。 この挙動については、調査中である。

    strcpyの挙動 - もっちの普段
    advblog
    advblog 2008/12/11
  • 構造体のインスタンスが const で修飾されているとき メンバに値を代入する方法 〜危険なコードと安全なコード〜 - akihiko’s tech note

    適当な構造体 TTest のインスタンスが const で修飾されているとき(const TTest x),そのメンバに値を代入したい,でもそのためだけにそのインスタンス(x)から const を外すのは嫌,という場合を考えよう.あるいは const メンバ関数(メンバ変数を変更しないメンバ関数)で,テンポラリなメンバ変数を変更したい,でもそのメンバ関数を非 const にするのは嫌,という場合でもいい.結論から言えば, mutable を使うと解決できる. 構造体とそのインスタンス struct TTest { int a; int b; }; const TTest x= {10,2}; を考える. x は const 修飾されているから,当然 x.a=5; のようなコードはエラー. g++ なら error: assignment of data-member 'TTest::a'

    構造体のインスタンスが const で修飾されているとき メンバに値を代入する方法 〜危険なコードと安全なコード〜 - akihiko’s tech note
    advblog
    advblog 2008/12/11
  • C++ WGアドホック会議レポート - Faith and Brave - C++で遊ぼう

    正式な議事録はそのうち公開する予定なので これは簡易レポートです。 この会議で決まったことは、まだ日の正式コメントではないので注意。 まず、集まった人数は30人ほどでした。 (直前で何人か来れなくなったので) 議論の順番は、コメント順ではなく章順になってます。 【77.バックスラッシュが足りない】 Raw String Literalのサンプルが間違ってるんじゃない?というもので Raw String Literalの仕様を見たところ、Rawと判断する文字列は"["と"]"で囲む必要がある、とか書いてあって「これ何のためにあるの?」といった議論になり、30分くらいかかった。 詳細は、id:haru-sさんやid:hito_hppさん、光成さんの以下のエントリを参照してください。 C++WGから帰宅 - ...ing logging 3.0 Raw string Literalについて -

    C++ WGアドホック会議レポート - Faith and Brave - C++で遊ぼう
  • 2008-12-08

    まあ書くことが無いんだよね。どうも仕事がマンネリ化してきて目新しいことがあんまりないから書くことがない・・・。いや、きっとあるんだろうけど文章に起こす気力が無いんだろうな。なんだかんだで結構時間うし。いや書きたいとは思うんだが・・・て、なんだか悪循環。どうしよう(マテ まあグダグダでもいいからまずは週1を目指します(^^; C++でオブジェクト指向でプログラムを組むというのは結構大変である。少なくとも私は身に付くまでにわりと苦労したorz 職場でも皆苦戦している。特に手続き型で長く開発をやってきた人はひときわ苦労している。しかし逆に初心者はわりとすんなり出来たりする。ちょっとうらやましい。 なんでなかなか覚えにくいかというと、おそらくその抽象的な概念にあると思う。まずはその思想を理解して、その思想の元に設計をおこない、その設計通りに実装を行う。重要なのは思想であってコーディングではない。

    2008-12-08
    advblog
    advblog 2008/12/11
  • 漸くCを切り離したぞ! - 神様なんて信じない僕らのために

    ……ということで、漸くCを切り離しました。 1ヶ月かかった。 ちかれた。 そして今さらの反応。 どんだけゆとりですか(笑) 各ビットのネーミングとかはそりゃああるだろうけど、 その程度のビット演算で悩んでどうするのかと。 あとはまあ、マクロでくるむくらいはしていいとは思うけどさ。 404 Not Found うーん、ビット演算ではなくて、 そのビット演算の結果、どうなっているのかが読み取りづらいんですよねえ、と思った訳なのです。 「で、そのビットはどんな効果を及ぼすの?」という感じで。 いや、過去の自分が読んだら、こいつはゆとりだ! とか思うんでしょうけれども。 hoge_flag |= HOGE_FLAG; ... if (hoge_flag & HOGE_FLAG) { hoge_flag &= ~HOGE_FLAG; } が至るところに出現するんですが、これが立っているとどうなるの?

    漸くCを切り離したぞ! - 神様なんて信じない僕らのために
  • Maybe monad in C++ | KernelTrap

    Jeremy founded Tag1 Consulting in 2007. He has been a contributing core Drupal developer since 2002, and helped establish Drupal as a successful CMS through the early popularity of his personal blog, KernelTrap.org. Over the years, he authored and maintained the core statistics module and throttle module, as well as the pager logic and the initial Drupal 5 installer. He continues to contribute to

    Maybe monad in C++ | KernelTrap
  • C++0x メンバ関数のlvalue/rvalue修飾 - Faith and Brave - C++で遊ぼう

    C++03 では、右辺値に対して左辺値用のメンバ関数を呼べてしまいます。 class X { public: X& operator=(const X&) { ... } }; int main() { X x; X() = x; // エラーになるべきだが、コンパイルが通ってしまう } この問題を解決するため、 C++0x ではメンバ関数を & 、 && で修飾することができるようになり、そのオブジェクトが左辺値の場合だけ呼べる関数、右辺値の場合だけ呼べる関数を判別できるようになります。 class X { public: X& operator=(const X&) & // 左辺値修飾 { ... } }; int main() { X x; X() = x; // エラー! } また、オブジェクトが左辺値なのか右辺値なのかでメンバ関数をオーバーロードできるので、 左辺値だったらco

    C++0x メンバ関数のlvalue/rvalue修飾 - Faith and Brave - C++で遊ぼう
  • はてなブログ | 無料ブログを作成しよう

    2024夏休み旅行 神戸・2日目【前編】 zfinchyan.hatenablog.com ↑1日目はこちら 6:50 わたしと夫だけ先に起床 前日に買っておいたお芋のパンで朝ごはん 昨日の疲れからか、なかなか息子たちが起きてこなかったので、ゆっくり寝かせてから10:00にホテルの下にあるプレイゾーンに行って、パターゴルフやバス…

    はてなブログ | 無料ブログを作成しよう
    advblog
    advblog 2008/12/06
  • GCCで、__attribute__ にconstructor指定した関数内から他のライブラリを呼び出すとき - torutkのブログ

    Binary Hackで記載されていたGCCの__attribute__を使ってconstructor指定した関数は、その実体を持つ動的リンクライブラリファイルをロードしたときに実行されます(main関数が呼ばれる前)。 namespace charlie { void init() __attribute__((constructor)); void init() { std::cout << "charlie::init()" << std::endl; // 初期化処理 } } 例えば上記のコードを持つ動的リンクライブラリlibcharlie.soを作成し、main関数を持つコードとリンクすると、charlie::initが先に実行されて、mainが実行されます。 main.o ---> libcharlie.so これはなかなか便利な機能ですが、扱い上の注意点もあります。cons

    GCCで、__attribute__ にconstructor指定した関数内から他のライブラリを呼び出すとき - torutkのブログ
  • はてなブログ | 無料ブログを作成しよう

    fire tv stickを旅のお供に 自宅用に買ったFire TV Stickだが、旅行にも持っていくと地味に便利で、最近は旅の荷物にときどき入れてる。 最近のホテルは、だいたいWi-fiが整備されているし、テレビも設置されている。 そしてテレビはだいたいHDMI端子が付いている。 なので、部屋に入ってサクッと…

    はてなブログ | 無料ブログを作成しよう
  • C++0x C99対応 - Faith and Brave - C++で遊ぼう

    C++0xでのC99対応は以下 long long int型 __func__ 定義済みマクロ __STDC_HOSTED__ __STDC_VERSION__ __STDC_ISO_10646__ _Pragma演算子 可変引数マクロと空引数マクロ ユニバーサルキャラクタ名 文字列リテラルとワイド文字列リテラルの結合 識別子にユニバーサルキャラクタ名と、処理系依存文字の使用を許可(先頭数字はダメ) N1653 Synchronizing the C++ preprocessor with C99 C++0x言語拡張まとめ

    C++0x C99対応 - Faith and Brave - C++で遊ぼう
  • いまさらC++ - やねうらおブログ(移転しました)

    私は最近はもっぱらC#なのでC++で書かなければならないシーンはめっきり減った。私がC++で書かなければならない部分はスピードが重視される部分のみなので、templateやインラインアセンブラを駆使したりはするが、その部分でそれほど込み入った設計が必要になるわけでもないので、boostのお世話になることは少ない。 そんな立場なのでいまさらC++の書籍を紹介するのも気が引けるのだが(有名どころは既に紹介してるし→http://d.hatena.ne.jp/yaneurao/20050514)、ビッグタイトルなので(そのわりに売れていないので)一応紹介しておく。 S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアルposted with amazlet at 08.12.033世,サムエル・P. ハービソン ガイ・L.,ジュニア スティール エイアイビーアクセス 売り

    いまさらC++ - やねうらおブログ(移転しました)
  • C++ の予約済み識別子 - IKB: 雑記帳

    17.4.3.1 Reserved names [lib.reserved.names] の 17.4.3.1.2 Global names [lib.global.names]: Certain sets of names and function signatures are always reserved to the implementation: Each name that contains a double underscore (__) or begins with an underscore followed by an upper case letter (2.11) is reserved to the implementation for any use. Each name that begins with an underscore is reserved to

    C++ の予約済み識別子 - IKB: 雑記帳
    advblog
    advblog 2008/12/06
  • C++ Historical Sources Archive — Software Preservation Group

    Paul McJones, editor paul@mcjones.org http://www.mcjones.org/dustydecks/ Abstract This is a collection of design documents, source code, and other materials concerning the birth, development, standardization, and use of the C++ programming language. Contents Chronology C with Classes (Cpre) Cfront releases Standardization documents GNU g++ releases Papers and articles about C++ Libraries (general-

    advblog
    advblog 2008/12/06
  • コーディング規約 - C++がらみの話題やメモ、その他何書くかわからんブログ

    C/C++はコーディングの際にかなり自由にホワイトスペースを入れることができる。また、大文字小文字を区別するので変数や関数の名前もかなり自由に決められる。 これらの決まりはコーディングを楽にするためのものだが書き手によって同じコードでも書き方が大きく異なる場合があり、また、「マクロは大文字」等の慣習もあいまってメンテナンス性に大きく影響する。 そこでコーディング規約が必要になる。 コーディング規約はコーディングの際のルールをまとめたものだがC++には公式に定められた規約はない(おそらく)。そのため自分で従う規約を選ぶ必要がある。ただ大抵のC++のコーディング規約は似たようなものなので心配しなくていい*1。 C++ コーディング規約で検索すればいくつもヒットすると思うがここでは2つほど挙げておく。 http://www.geocities.jp/bleis_tift/cpp/codingru

    コーディング規約 - C++がらみの話題やメモ、その他何書くかわからんブログ