タグ

C++に関するhantasのブックマーク (7)

  • 120 行で vi っぽいエディタを作る - Qiita

    参考:Qiita では印刷がうまくできません。プリントしたい人や PDF 化したい人は http://gurakura.sakura.ne.jp/culture/vi-like_text_editor_by_120_lines/ の方を見て下さい(同じ内容です)。 IOCCC 91 Best Utility 実を言うと 120 行も必要なく、28 行で書けちゃったりするのですが("Best Utility IOCCC 91" https://github.com/SirWumpus/ioccc-ae/tree/master/91)、それはさておき、文書では現代風にこのプログラムを書き直してみます。古文の現代語訳みたいなものだと思っていただければ幸いです。 ちなみに IOCCC 91 で Best Utility 部門を受賞した全 28 行のプログラムは、このようなソースコードだったそうで

    120 行で vi っぽいエディタを作る - Qiita
  • 気鋭の縄文陶芸家はなぜC++のエキスパートなのか

    ITに全く関係ない分野からITに飛び込んで活躍しているエンジニア」や「ITIT以外の分野の境界を行き来しながら成果を上げているエンジニア」などを「越境エンジニア」と名付け、1カ月に一人ずつインタビューを掲載する。今月取り上げるのは村上原野(むらかみげんや)氏。縄文土器にインスピレーションを受けた創作を行っている陶芸家だ。同時にネットでは「狂える中3女子ボレロ村上」というハンドルネームでC++に詳しいプログラマーとしても知られている。今回は、縄文文化に深く影響を受けた生い立ちやプログラミングとの出会いなどを聞いた。 私の肩書は縄文造形家であり、陶芸の縄文アートを手掛けています。縄文アートとは、日の縄文時代の造形やスピリットにインスピレーションを受けたアートの総称です。私はその中でも、現代の窯で焼く陶芸とは全く異なる縄文時代の焼き方、土、造形技法といった縄文そのものの技法を再現して創作を

    気鋭の縄文陶芸家はなぜC++のエキスパートなのか
  • 江添亮の詳説C++17

    はじめに 書は2017年に規格制定されたプログラミング言語C++の国際規格、ISO/IEC 14882:2017の新機能をほぼすべて解説している。 新しいC++17は不具合を修正し、プログラマーの日々のコーディングを楽にする新機能がいくつも追加された。その結果、C++の特徴であるパフォーマンスや静的型付けは損なうことなく、近年の動的な型の弱い言語に匹敵するほどの柔軟な記述を可能にしている。 人によっては、新機能を学ぶのは労多くして益少なしと考えるかもしれぬが、C++の新機能は現実の問題を解決するための便利な道具として追加されるもので、仮に機能を使わないとしても問題はなくならないため、便利な道具なく問題に対処しなければならぬ。また、C++の機能は一般的なプログラマーにとって自然だと感じるように設計されているため、利用は難しくない。もしC++が難しいと感じるのであれば、それはC++が解決すべ

  • 値渡しにconstを付ける?付けない? - HK's Weblog

    最近会社でプロジェクトメンバーにソースコードレビューしてもらう習慣ができました。 自分のソースコードをリーダー・後輩にレビューしてもらったんですが自分のコードを晒す事と人のコードを読む事に勝る勉強はない。 それで今回は一つの指摘点にスポットを当ててみた。 //これって引数の値に変更がないのならconst付けたほうがいいんじゃないでしょうか? void func(int x) { // 実装 } そもそもconstを付ける意味って? オブジェクトの場合 無駄なコピーをしないために参照渡しをする。 そのときに渡した値に変更を加える関数かどうかでconstを付けるか付けないかが決まる。 void func1(std::string str) { // sはstrに値をコピーする。(コピーコンストラクタが呼ばれる) // strは値を変更する事が出来る // strの値を変更してもsにはなんら影響

    値渡しにconstを付ける?付けない? - HK's Weblog
    hantas
    hantas 2017/10/13
  • 組み込みシステム上でのC++ | POSTD

    去年の10月、私が所属している 会社 の部署で、組み込みファームウェアの開発をC言語からC++に切り替えました。C++のクラス、リソースの自動クリーンアップ、パラメータ多相、そして強化された型安全性などは、汎用OSをデスクトップ機で稼働している時と同様、リアルタイムOS(RTOS)やベアメタル上でも便利です。C++を使えば、安全で表現豊かなファームウェアを書くことができます。 しかしC++のこの自動的な魔法は諸刃の剣とも言えます。いくつかの機能は、組み込み環境 ^(1) には搭載したくないシステムのファシリティに依存するからです。ツールチェーン周りをどうするかも厄介です。 memcpy やアトミック操作、ハードウェア固有の浮動小数点関数などの重要なファシリティが提供されるので、 libgcc と libstdc++ を完全に破棄するのではなく、特定の部分を避けて使わなくてはなりません。 こ

    組み込みシステム上でのC++ | POSTD
    hantas
    hantas 2017/04/08
  • C++ 11 auto の使い方 - プログラミングの教科書を置いておくところ

    はじめに C++ 11 で auto キーワードが型推論機能として生まれ変わりました 7 Declarations 7.1 Specifiers 7.1.6 Type specifiers 7.1.6.4 auto specifierここでは auto の4つの使い方について簡単に説明します auto, auto&, const auto&, auto&& (auto* などともできますがここでは省きます) auto auto はコピーされても構わないときに使います 整数やポインタなどを受け取る場合はいいのですが、次のような使い方では無駄なコピーが生じてしまうので注意が必要です s は foo[n] のコピーです std::vector<std::string> foo; ... for( auto s : foo ){ ... } auto& auto& はほぼ万能型です lvalue

    C++ 11 auto の使い方 - プログラミングの教科書を置いておくところ
    hantas
    hantas 2017/01/17
  • 組込環境でC++を使う際の幾つかの優れた方法 - 神様なんて信じない僕らのために

    組込環境というのは、メモリが数MBしかなくて(例えば4MB) プログラムのブートサイズにも限界がある環境の事です。 例外をコンパイラオプションでoffにする 「例外を使った方が安全です!!」 という言葉をはねのけて必ず「コンパイラのオプションで」offにする。 try、catch、throwを使わないということではない。 暗黙にコンパイラが例外のコードを生成しようとするのを停止させること。 例外にコードを使われると書くことができるコードが減ってしまいます。 最悪ブートができなくなります。エラーはassertでトラップしましょう。 特にC++の例外安全性を理解し、使いこなせる人は少ないので無闇にonにすべきではないです。 例外安全性を理解し、設計できる力のある人はほぼいません。 - RTTIをコンパイラオプションでoffにする 「dynamic_castの有用性が!!!」 という言葉をはねの

    組込環境でC++を使う際の幾つかの優れた方法 - 神様なんて信じない僕らのために
    hantas
    hantas 2015/12/17
  • 1