タグ

c++に関するokumuraa1のブックマーク (10)

  • TCC : Tiny C Compiler

    News [Note: I am no longer working on TCC. Check the mailing list to get up to date information.] Features SMALL! You can compile and execute C code everywhere, for example on rescue disks (about 100KB for x86 TCC executable, including C preprocessor, C compiler, assembler and linker). FAST! tcc generates x86 code. No byte code overhead. Compile, assemble and link several times faster than GCC. UN

  • C/C++のビルドの仕組みとライブラリ - かみのメモ

    研究でVisual C++を書くうちに、そういえばリンカとかライブラリの仕組みを理解していなかったな、と思ったので色々調べてみました。 書きやすいからという理由で説明口調の文章にしていますが、多分に間違いを含む可能性があります!(オイ) 気付いた部分があればコメントしていただけるとありがたいです。 ※ 2018/12/01 : #pragma once周りを追記しました ※ 2018/12/23 : ライブラリを使うためのビルド設定の話を追記しました スポンサーリンク もくじ 1. ビルドとは 2. C/C++のビルドの仕組み 2.1. プリプロセッサ 2.2. コンパイラ 2.3. アセンブラ 2.4. リンカ 3. ライブラリの種類と仕組み 3.1. ソースコードを配布 3.2. 静的リンク(static linking) 3.3. 動的リンク(dynamic linking) 3.4

    C/C++のビルドの仕組みとライブラリ - かみのメモ
  • Chromium のソースコードの歩き方

    これは Chromium Browser アドベントカレンダーの一日目の記事です。初日ということで、記事では Chromium のソースコードを読む上で役に立つであろう、プロジェクトのディレクトリ構成やファイル構成を紹介します。 (2018/04/09) “The Great Blink mv”1 プロジェクトによってついに WebKit ディレクトリが blink ディレクトリにリネームされました。それに伴い記事の内容を更新しました。差分は以下の通りです。 third_party/WebKit/Source を third_party/blink/renderer に置換。 blink/ 内のファイル名の命名規約を Bar.{cpp,h} から bar.{cc,h} に置換。 置換に伴う説明文の修正。 (2017/12/01) ディレクトリ構成について追記しました。 Chromium

    Chromium のソースコードの歩き方
  • 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
  • ヤッター!paiza.ioでコンパイラできたよー!\(^o^)/ - Qiita

    これは何? 先日、こんな記事を見ました1。 ほう? コンパイラの自作方法を解説しているなんて、なかなか意欲的な記事じゃないか。どれどれ。 ( ゚д゚) ポカーン・・・ (つд⊂)ゴシゴシ (;゚д゚) ・・・ (つд⊂)ゴシゴシゴシ _, ._ (;゚ Д゚) …!? paiza.io はコンパイラ自作支援システムだ。いいね? アッハイ 作ったやつ よくある Brainf*ck コンパイラ(手抜き)です。 技術解説(言い訳タイム) 最初は ELF64 の実行可能ファイルを直接吐き出すコンパイラ作ろうかなって思ったんですよ。でも ELF フォーマット調べてたらこれめんどくせーなってなりました。 Rustなら elf crate とかあるんですが、 paiza.io で外部 crate は流石に使えないし。 という訳で、「Brainf*ck のソースコードから Rust のソースコー

    ヤッター!paiza.ioでコンパイラできたよー!\(^o^)/ - Qiita
  • C++コンパイラはあなたよりも良いコードを書く - Qiita

    最適化 皆さんご存じの通りC++という言語は速度しか取り柄がありません。複雑怪奇な構文、異常量のコンパイルエラー、何が起きるかわからない未定義動作たち、、、それでもなお私たちがC++を使い続けるのは、そう、極めて速いからです。ちょっと前に流行ったD言語や最近流行りのRustが速いという噂ですが、結局ほとんどの場面で速度においてC++に勝ててはいません。個人的な偏見ですがC++のように速度のみを重視し、安全性を捨てない限りRustに未来はないでしょう。まあ、人から聞いた噂によるとRustの標準ライブラリの中身はunsafeなコードが敷き詰められているらしく、なかなか速いようですが。いずれRustが廃れてUnsafe Rustの方が人気が出たりするかもしれませんね。とりあえず、最も速度面で優れている言語はC++といっても過言ではないでしょう。 そして、その圧倒的な速度を支えるのが何といってもC

    C++コンパイラはあなたよりも良いコードを書く - Qiita
  • 複数バージョンのVisual Studioで開けるC++のプロジェクトを作る - Qiita

    解決策1: CMakeをつかう まあ一番確実だし、他のコンパイラでも使えるしコンパイラのバージョンなんでいうわかりにくい指標ではなく対応している言語機能で制約することもできる(らしい)が、まあそれは他のサイトに解説を譲る。 解決策2:あえてCMakeを使わないという選択肢 今回の題。 Condition attribute C++プロジェクトの実体は.vcxprojという拡張子のxmlファイルである。xmlのattributeをハックして条件分岐できるようになっている、いわゆるCondition attributeだ、汚いです。 MSBuild の条件 | Microsoft Docs MSBuild Conditional Constructs | Microsoft Docs こいつを活用する。 複数バージョンで利用するときの障害となるのはなにか そもそもなんで普通に作ったプロジェク

    複数バージョンのVisual Studioで開けるC++のプロジェクトを作る - Qiita
  • で、結局 #include <bits/stdc++.h> って何? - Qiita

    hakatashiです。 競プロ界では一般的なテクニックであるにも関わらず、何かと定期的に燃えがちな話題であるbits/stdc++.h。便利ではあるけど、そもそもこのファイルって何?年齢は?性別は?家族構成は?彼女はいる?調べてみました! そもそも、bits/stdc++.hって何? GNUが開発するC++の標準ライブラリの実装であるlibstdc++のプリコンパイル済みヘッダを生成するためのソースファイルです。 具体的な中身はgccのソースリポジトリのlibstdc++-v3/include/precompiled/stdc++.hから参照することができます。見ると、CおよびC++の標準ライブラリに含まれるヘッダがすべてインクルードされており、このことから「#include <bits/stdc++.h>と書くとすべての標準ライブラリを一度にインクルードできる」という性質を持ちます。

    で、結局 #include <bits/stdc++.h> って何? - Qiita
  • 岡山の某中3女子ことボレロ村上氏との有意なからみ

    ボレロ村上氏の訃報を聞いて、自分が質問した形跡をまとめてみた。 自分にとってボレロ村上氏は偉大な人枠に入ってるので、恐れ多さから、そこまで質問してはいないけど、彼のブログや、なによりSproutの実装がどれだけ自分のC++の勉強の助けになったか、計り知れない。 リンク GitHub Visual Studio 2015およびVIsual Studio 2013 November CTP対応 · Issue #80 · bolero-MURAKAMI/Sprout sprout/config/compiler/visualc.hpp で現状constexprとnoexceptが無効化されていますが、noexceptはVIsual Studio 2013 November CTPから、C++11のconstexprはVisual Studio 2015から対応しているように思います。ついでにC

    岡山の某中3女子ことボレロ村上氏との有意なからみ
  • 厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita

    (AtCoder Beginner Contest 152 で提出されたソースコードの分類) それほど C++ が、競プロやアルゴリズムの学習に人気であるのには、以下のような理由があるのです。 計算速度が 1 秒あたり $10^{8} ~ 10^{9}$ 回程度と、他のプログラミング言語に比べ高速だから。 基礎的文法の習得がそれほど難しくないから。 しかし、C++ の利点はこれだけではありません。元々用意されている標準ライブラリがあるのです。一方、標準ライブラリは C++ を学ぶ大きな障壁となるものの一つです。C++ を学ぶ上で標準ライブラリが上手く使えず挫折したという人も多いと思います。そこで記事では、 競技プログラミングやアルゴリズムの実装に使える 25 個の C++ 標準ライブラリと、それらの各種アルゴリズム実装への応用例 を解説したいと思います!!!!! 記事を読んだら何ができ

    厳選!C++ アルゴリズム実装に使える 25 の STL 機能【前編】 - Qiita
  • 1