タグ

c++に関するyk5656のブックマーク (32)

  • C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?

    回答 (9件中の1件目) > C++のenumという型の使い方がよくわかりません。 C++に限りませんが、Enumは基的にはカテゴリ変数を表すために使用します。例えば曜日には月曜日から日曜日の7通りまでしかなく、曜日を表す変数を整数(0-6)や文字列(mon, tue, …, sun)で扱おうとすると関数の引数で与えられたときにその範囲外の値が入ってきたかどうかをいちいちチェックしないといけません。しかし、事前にEnumでMonからSunまでの7つの値しかないDayOfWeekという型を定義しておくと、一度DayOfWeekに変換しておけば以降はもうチェックをする必要が無いことが型レ...

    C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?
    yk5656
    yk5656 2023/02/11
  • プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話

    プログラム解析入門 もしくはC/C++を安全に書くのが難しすぎる話 Last updated: Jul 30, 2022 Kinuko Yasuda <@kinu>

    プログラム解析入門、もしくはC/C++を安全に書くのが難しすぎる話
    yk5656
    yk5656 2022/08/01
  • おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary

    みなさんはC++の読み書きができますか? 自信がある方、いつ頃勉強しましたか?もし20世紀に勉強したのであれば、その知識は相当古いです。実質現在のModernC++(C++11以降のC++)とは概念上の互換性がないので脳のアップデートが必要です。 自信がない方、文法は知っているけどなんとなく使いこなせていない方、マサカリ屋にあーだこーだ言われて大混乱している方。必勝パターンを身につければもっと楽にコードを読み書きできるようになるかもしれません。 この文章の目的は、ModernC++におけるメンタルモデル(考え方)や必勝パターンをざっくりと導入することでみなさんが楽にModernC++を読み書きできるようなお手伝いをすることです。主要な内容としてはムーブセマンティクスと右辺値 とその次の章でだいたいA4換算で15ページくらい?ほかは正直流し読みしてもらえるような内容です。また、内容的にはその

    おっさんのためのModernC++入門ガイド(草稿) - dec9ue's diary
    yk5656
    yk5656 2021/11/15
  • Learn Contemporary C++ | Concise&Visual Examples

    Learn up-to-date, idiomatic C++ with code examples, concise explanations, cheat sheets and infographics. -- Lerne aktuelles, idiomatisches C++ mit Code-Beispielen, knappen Erklärungen und Infografiken. -- 学现代的C++ // 代码示例,简洁的说明和图表

    Learn Contemporary C++ | Concise&Visual Examples
    yk5656
    yk5656 2021/09/27
  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

    yk5656
    yk5656 2019/09/20
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - cpprefjp C++語リファレンス 追記 全ての開発者が知っておくべきUnicodeについての最低限の知識 - GIGAZINE Unicodeについて簡潔にまとまってるいい記事を見つけました。 Caution この文章には以下の要素が含まれます。苦手

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
    yk5656
    yk5656 2018/12/23
  • C++完全理解ガイド Rev1.4.01 - Qiita

    はじめに C++を完全理解したので完全理解ガイドを書く。 最初に言っておくがタイトルは詐欺で、実際はポエムである。 僕は仕事C++を書いたことはないのでなんか変なことを言っているかも知れない。 ところで無職になったので、普通にC++で職がほしい。 2018年6月から受託で仕事をもらい、毎日C++17を書いています。 2018年9月から雇用され、毎日C++17を書いています。 かなり雑に書いているはずなので、コメント等でどんどんマサカリを投げてほしい。 僕は何者か 工学部を卒業して4年ほど高校の理科教師をやっていたが、現在無職になった人。 工学部を卒業して4年ほど高校の理科教師をやっていた。 最初は良かったのですが、授業に慣れ、このまま自分の成長が止まってしまうのかとなぁと思い、辞めて無職に。 一ヶ月無職を楽しんだあと、某から受託でC++を書く仕事をもらい、C++17を書いている。 主にツ

    C++完全理解ガイド Rev1.4.01 - Qiita
    yk5656
    yk5656 2018/03/28
  • わかりやすい画像のdiffを求めて - Qiita

    どうも。フロントエンドエンジニアの @Quramy です。 さて、前回、1日10万枚の画像を検証するためにやったことで書いているとおり、reg-suitという画像に特化した回帰テストツールをメンテしています。 画像回帰テストという文脈において、差分の可視化方法はとても重要なファクターです。なぜなら、画像(=スナップショット)に差分が発生したからといって、それすなわち棄却、というわけではなく、その差分の内容を判断して、意図せぬ変更であれば棄却、意図した変更であればexpectedを更新する必要があります。すなわち、ワークフローに目視による差分のレビューが発生するのです。 そこで、少しだけ異なる2枚の画像について差分を効果的に可視化する、というテーマに向き合ってみました。 主にC++OpenCVでの実装ですが、これらの知識が無くとも読めるよう、コードやAPIへの言及を少なくして、中間画像で説

    わかりやすい画像のdiffを求めて - Qiita
    yk5656
    yk5656 2017/12/22
  • 江添亮の詳説C++17

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

    yk5656
    yk5656 2017/10/15
  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
    yk5656
    yk5656 2016/09/16
  • C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み - Qiita

    はじめに @takeokunn そういや私の昨日のツイートたどってみ、C++初心者(boost.asioが使えないとは言っていない)の人とQiitaでやりとりしてたから — yumetodo-C++erだけど化学科 (@yumetodo) 2016年5月3日 @yumetodo だからC++erの初心者は初心者じゃないんだよ!!!!!!!!!!!!! だからC++er嫌いなんだよ!!!!!!!! — たけてぃ (@takeokunn) 2016年5月3日 @takeokunn 当人も「そろそろ中級者かな」 と言ってた 因みに C初心者 < C++初学者 < C++入門者 < C++初心者 < C++規格書リーディング初心者 < C++中級者 < C++規格書リーディング中級者 < C++上級者 < C++規格書クラッカー — yumetodo-C++erだけど化学科 (@yumetodo)

    C++erを簡易的にレベル分けすることで初心者詐欺を減らそうという試み - Qiita
    yk5656
    yk5656 2016/05/13
  • GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ

    4月27日 と 28日 のエントリーに、確率統計の再勉強中であることを書いた。高校時代から思っていたのだが、答えの正確性を担保するものがないことに、つらつら不満を感じた。問題集だったら巻末に答えが載っているが、現実に直面する問題にはそういうものはないから、間違えたら間違えっぱなしじゃないかということである。そして人間は必ず間違いを犯す存在なのだ。 のっけから話はズレるが、その点、複式簿記ってすごいですよ。貸借平均の原理というのに基づいて、間違いを検出するシステムが構築されている。あれも間違いなく人類の偉大な知的遺産の一つだと思っている。もっと勉強せねばと思いつつ果たしていない。 スポンサーリンク 話を戻して、高校時代に比べて今の自分は無駄に年を取ったわけでなく、ちっとは知識を蓄積しているはずだ。すぐに思いつくのは、簡単なプログラミングによってシミュレーションをすることだった。しかしマシンの

    GWだからWindowsのC&C++フリー開発環境MinGWをインストールしたら、またも世の中から取り残されていたことに気づいた(前編) - 🍉しいたげられたしいたけ
    yk5656
    yk5656 2016/04/30
  • 如何にして私は心配するのをやめてC++を愛するようになったか by 江添 さん - niconare

    歌舞伎座.tech#9「異種プログラミング言語格闘勉強会」の発表資料

    如何にして私は心配するのをやめてC++を愛するようになったか by 江添 さん - niconare
    yk5656
    yk5656 2016/03/20
  • シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita

    漢は黙ってシングルファイル C/C++ ライブラリですね! シングルファイル C/C++ ライブラリとは, ヘッダファイル .h ひとつだけで機能が実装されているライブラリ(もう少し条件をゆるくして .cc も含む)のことです. header-only とも言われれたりします. このあたりの元祖は nothings 先生 http://nothings.org/ ですね. 最近は github にコードをあげています. https://github.com/nothings/stb シングルファイル系のライブラリまとめ一覧もあります. シングルファイル系が便利すぎてやばいので, 自分でもいくつか作りました. TinyObjloader(Wavefront .obj loader) https://github.com/syoyo/tinyobjloader TinyEXR(OpenEXR

    シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
    yk5656
    yk5656 2015/11/30
  • 【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)

    私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそも当に分けなければならないのか」という質問です。 C++といえば、ヘッダー部と実装部を.hファイルと.cppファイルに分けることが一般的とされている言語ですが、 これは同じオブジェクト指向言語のC#やJavaにはない特徴です。 そのせいでC++使いたちは今日もcppファイルとhファイルを行ったり来たりしながらコーディングする羽目になっています。(そしてVS使いはF12とCtrl+-を得意気に連打しています。) 私にとってもそれが当たり前になって久しいですが、 時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は二度も同じコードを書くことを強いるのか」と質問を受けます。 私はそのたびに「実装の隠蔽化」とか「循環参照の危険が云々」とか「そ

    【C++】なぜヘッダと実装はわけるべきなのでしょうか(.hに実装を書くことは邪道か)
    yk5656
    yk5656 2015/06/10
  • 前置インクリメント vs 後置インクリメント | 闇夜のC++

    後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか

    yk5656
    yk5656 2015/04/17
  • Log in with Atlassian account

    We tried to load scripts but something went wrong. Please make sure that your network settings allow you to download scripts from the following domain: https://id-frontend.prod-east.frontend.public.atl-paas.net

    yk5656
    yk5656 2013/12/19
  • ドワンゴのC++勉強会で発表した

    歌舞伎座.tech#2でC++14について発表した。 今回、ドワンゴ側から、交通費ぐらいは出すから、C++11かC++14について話してくれと言われた。正直、C++14が出てくるとは思わなかった。まさか、日の企業にそんな気概のあるところが残っていようとは期待していなかった。ともかく、C++14について話してくれと言われたので、C++14に新しく追加されるコア言語機能をすべて解説することにした。 当日使ったスライドは、GitHubにあげてある。 EzoeRyou/kabukiza-tech2-slide また、GitHub Pagesも有効にしてあるので、Web上で閲覧できる。 http://ezoeryou.github.io/kabukiza-tech2-slide/index.html 。 当日はそれなりに盛り上がったようだ。 私は普段酒は飲まないのだが、今日、たまたまビールがあるの

    yk5656
    yk5656 2013/11/15
  • ゲーム開発者のための C++11/C++14

    15. Visual Studio は 着実に C++11/14 に対応 2010. 4 2010 auto, move, nullptr lamdas, <random> 2012. 9 2012 Range-based for, enum class <chrono> , <ratio>. <thread> 2013. 6 2013 Preview Variadic templates initializer_lists, C++14 libs 2013. 9 2013 RC Non-static data member init defaulted / deleted functions 2013. 11 2013 2013 Q4 2013 + CTP constexpr, noexcept C++14 generic lamdas

    ゲーム開発者のための C++11/C++14
    yk5656
    yk5656 2013/09/16
  • C++で作るWebアプリケーション

    14 views Boost.勉強会 #12で発表した「C++で作るWebアプリケーション」 ... More… Boost.勉強会 #12で発表した「C++で作るWebアプリケーション」 C++JavaScriptにコンパイルするコンパイラ Emscriptenを使ってC++でブラウザ上で動くアプリケーションを開発する方法を解説します C++で作るWebアプリケーション Presentation Transcript そんなC++の進出を拒んできた領域C++はとてつもなく汎用的な言語である2013年6月22日土曜日 WEB2013年6月22日土曜日 サーバ クライアントこっちは割とどんな言語でも書ける問題はこっち2013年6月22日土曜日 JavaScriptWEBブラウザで動く物を作るために長らく使われてきた言語近代的な多くのブラウザが共通して対応している唯一の言語2013年6月22

    yk5656
    yk5656 2013/06/22