並び順

ブックマーク数

期間指定

  • から
  • まで

561 - 600 件 / 697件

新着順 人気順

cppの検索結果561 - 600 件 / 697件

  • 「低レイヤを知りたい人のためのCコンパイラ作成入門」挫折体験まとめ

    ぶんぶん @adoring_onion 「低レイヤを知りたい人のためのCコンパイラ」はC言語知ってること前提で進むから、結局C言語そのものが分からなくて詰まる 2020-05-08 00:51:41 orumin @orumin とりあえず C の基礎の文法わかってる人には godbolt.org を教えて色々なコードがどう翻訳されるのか、呼び出し規約でどうコードが変わるのかとかやるといいと思っているんですが、godbolt で自分で色々やって読んでみるためのアセンブラの読み方の bootstrap みたいなのは別個要るよね… 2021-04-25 17:33:01

      「低レイヤを知りたい人のためのCコンパイラ作成入門」挫折体験まとめ
    • gccの-rdynamic option 調査メモ - Qiita

      はじめに gccの-rdynamic optionの調査メモ。 gcc 9.1.0, glibc 2.29を対象に調査した。 基本内容に差はないと思うが、target archはx86_64-pc-linux-gnu。 TL;DR -rdynamicオプションはリンク時のみ効果がある。 -rdynamicオプションを適用すると、共有ライブラリから実行ファイルのシンボル情報を動的に取得できるので、バックトレースの表示などに使われる。 -rdynamicオプションを適用することで、共有ライブラリとして利用可能な実行ファイルを作成できる。 -rdynamicオプションを適用するとシンボルバッティングや意図せず共有ライブラリに制御されてしまうリスクが増えるので、明確に目的がないなら通常は無効にしておく。 gcc,glibcのソースコードは面白い。 gccのspecファイルむずい。 公式ドキュメント

        gccの-rdynamic option 調査メモ - Qiita
      • C++/WinRTの始め方 - Qiita

        概要 C++ にある程度慣れている人向けに C++/WinRT を紹介する。 開発環境を整え、簡単なプログラムを実行する。 C++/WinRT とは Windows 10 のネイティブアプリを作るためのフレームワーク C++/CX のような独自言語を用いない C++17 のライブラリとして表現される WRL という Template Library もあったらしいが、 C++/WinRT に取って代わられた 小さく、ランタイムが速いのがウリ C++ で表現されたネイティブなライブラリってことは MFC みたいなもんね、と言ってしまえばそれまでだが、ユニバーサル Windows プラットフォーム (UWP) に対応しているのが大きく異なる。PPI (DPI) の異なる複数のディスプレイの間でウィンドウを移動してもきちんと追従する。 あとは MFC みたいなマクロによるおまじないが登場しないの

          C++/WinRTの始め方 - Qiita
        • Adding a Rust compiler front end to GCC [video] | Hacker News

          Because there is often some confusion, note that there are two different projects in this space with different approaches.The project discussed in the video above is a new front end to GCC (written in C++, as is typical for GCC frontends) and is developed here: https://github.com/Rust-GCC/gccrs The other project involves plugging GCC's backend into the existing rustc frontend, and is developed her

          • std::vector をがんばって高速に resize する - Qiita

            あらまし プロファイラとにらめっこしながら気合を入れて最適化していくと、最終的に上位に std::vector<char>::resize() が残った、という経験が度々ある。 該当ケースは大抵 std::vector<char> を一時バッファとして利用しており、頻繁に resize() が呼ばれ、サイズは数十~数百 MB 規模に及ぶ、といった感じである。std::vector の resize() は新規に追加される要素に対してはコンストラクタを呼ぶが、組み込み型の場合はゼロクリアがなされる。大きなメモリ領域へのゼロクリアは重い処理であるため、プロファイル上位に残ることになるのだが、一時バッファは基本的にゼロクリアは不要であり、純粋に時間の無駄である。この無駄をなんとかしたい。 根本的な話として、こういう状況では std::vector<char> は使うべきではないと思う。mallo

              std::vector をがんばって高速に resize する - Qiita
            • A Tour of C++ Modules in Visual Studio - C++ Team Blog

              C++ module support has arrived in Visual Studio! Grab the latest Visual Studio Preview if you want to try it out. C++ modules can help you compartmentalize your code, speed up build times, and they work seamlessly, side-by-side with your existing code. This preview only supports C++ modules in the IDE for MSBuild projects. While the MSVC toolset is supported by any build system, Visual Studio’s ID

                A Tour of C++ Modules in Visual Studio - C++ Team Blog
              • 使ってみよう!C++20標準のおすすめ言語仕様 - Qiita

                GCC versionごとにサポートされる仕様については C++ Standards Support in GCC を、パッケージマネージャーでインストール可能なパッケージについては Ubuntu パッケージ検索 を参照してください。 Concepts Concepts は、一定の特徴を持ったクラスの範囲を表すことができる概念です。例えば、テンプレート関数で、一定の範囲のクラスだけテンプレートパラメータに代入できることを明示したりできます。拘束条件付きのテンプレート関数を、constrained template functionと言います。静的解析によってコンパイル前にエラーが判明するほか、コンパイル時間の短縮もされるらしいです。 以下のコードでは、拘束条件付きのテンプレート関数と、従来のテンプレート関数を使って、引数に非対応の型を入力した場合の挙動を比較します。 ここでは、テンプレート

                  使ってみよう!C++20標準のおすすめ言語仕様 - Qiita
                • Visual Studio 17.1 Preview 2が登場、Gitのブランチを他のブランチと比較する機能、セーブ時にコードを自動的にクリーンナップする機能など追加

                  Visual Studio 17.1 Preview 2が登場、Gitのブランチを他のブランチと比較する機能、セーブ時にコードを自動的にクリーンナップする機能など追加 マイクロソフトはVisual Studio 17.1 Preview 2を公開しました。 Name a sequel that's better than the original. We'll start: Visual Studio 17.1 Preview 2 Reasons why: https://t.co/PdQAE324Mi #Git #VisualStudio pic.twitter.com/HuHzYeFa1q — Microsoft Visual Studio (@VisualStudio) January 13, 2022 Visual Studio 17.1 Preview 2には複数の新機能が搭載さ

                    Visual Studio 17.1 Preview 2が登場、Gitのブランチを他のブランチと比較する機能、セーブ時にコードを自動的にクリーンナップする機能など追加
                  • メタバース開発の実際を、REALITYのiOSエンジニアに聞く - 「意外とネイティブの比重が大きいです」

                    – 現在メタバースといえば、VRのイメージが強いです。 清: メタバースという言葉の定義はまだ固まっていないので、社内でもよく議論していますし、それが定義されるプロセスに私達も関わりたいですね。「俺たちが作るものがメタバースだ!」みたいな。 「何がメタバースか」という問いについては、今は個人によっても答えが違うんじゃないかなと思います。あおやまくんはどう考えてる? あおやま: メタバースの定義はいろいろあると思うのですが、一つ間違いないと思っているのは、アバターを使ったコミュニケーションの比重が大きいということです。 そしてVRゴーグルをかぶると、アバターへの自己投射性が上がるので、VRを見据えておくのも必須かなと。VRゴーグルの普及度合いをにらみながら、戦略を練っていくんだと思います。弊社にもGREE VR Studio Laboratoryという部署があり、VRについては研究を進めてい

                      メタバース開発の実際を、REALITYのiOSエンジニアに聞く - 「意外とネイティブの比重が大きいです」
                    • 「Excel」のXLLアドインが既定でブロックへ ~「Excel 97」からあるC/C++ベースのアドイン/Windows版「Excel」の「バージョン 2302」(2023年2月更新)から展開

                        「Excel」のXLLアドインが既定でブロックへ ~「Excel 97」からあるC/C++ベースのアドイン/Windows版「Excel」の「バージョン 2302」(2023年2月更新)から展開
                      • Address Sanitizer for MSVC Now Generally Available - C++ Team Blog

                        Our free, one-day, virtual conference for the whole C++ community This post was last updated on March 10th, 2021. Special thanks to Aaron Gorenstein who provided most of the content for this blog post. Special thanks as well to Kevin Cadieux and Jim Radigan who also made contributions. You can check out a demo on this feature in the latest Visual Studio Toolbox episode on YouTube: Visual Studio To

                          Address Sanitizer for MSVC Now Generally Available - C++ Team Blog
                        • 【C言語】難解なポインタに挑む「忍法写し身の術!」その3 - Qiita

                          ●はじめに こんにちは。 今回は、C言語で皆さんが最もつまずくとされているポインタで配列変数と組み合わせたプログラムの説明をしていきたいと思います。 私もポインタは概念が難しく理解するのに時間がかかりましたがわかりやすく解説していきます。 「え、そもそもC言語とか初めてなんだけど。。。」 「プログラミングの基礎がわからない。」 という方向けの記事ではないので以下のサイトの基本編を学んでからこの記事を読んでください。 →一週間で身につくC言語の基本 「C言語の関数くらいまでならできるよー」 って方でポインタにつまずいている方は是非、読んでください。 また、前回はポインタ変数と配列変数の関係性を説明したので読んでいない方はこちらをご覧ください。(今回も配列変数を扱いますが微妙にプログラムが異なり、前回が基礎です) →【C言語】難解なポインタに挑む「忍法写し身の術!」その2 ●ポインタ変数として

                            【C言語】難解なポインタに挑む「忍法写し身の術!」その3 - Qiita
                          • C xor C++ Programming

                            Note: this document is no longer the definitive source for this information. Please see the official documents in the WG21 and WG14 document registers for the latest information. Title: C xor C++ Programming WG21 Document Number: P2735R0 WG14 Document Number: N3065 Date: 2022-12-05 Author, Affiliation: Aaron Ballman <aaron@aaronballman.com>, Intel Audience: SG22 C and C++ Compatibility Study Group

                              C xor C++ Programming
                            • New C++ features in GCC 12 | Red Hat Developer

                              Version 12.1 of the GNU Compiler Collection (GCC) is expected to be released in April 2022. Like every major GCC release, this version will bring many additions, improvements, bug fixes, and new features. GCC 12 is already the system compiler in Fedora 36. GCC 12 will also be available on Red Hat Enterprise Linux in the Red Hat Developer Toolset (version 7) or the Red Hat GCC Toolset (version 8 an

                                New C++ features in GCC 12 | Red Hat Developer
                              • 基礎プログラミング演習I 〜100本ノック

                                基礎プロI 100本ノック 基礎プログラミング演習Iで扱った範囲の文法で書けるC言語の練習問題集です。プログラムを書くべし、書くべし、書くべし!! 各プログラムにおいて、特に指定が無い限りは入力値が指定された形式であるかどうかをチェックする必要はない(例えば整数型の値を入力させるところでアルファベットを入力された場合など)。 基礎編 初級編 中級編 グラフィクス編 上級編 gccが使えなくなった場合の対処法 OSを最新版にアップデートするとコンパイラなどの開発ツールが消去されることがあるようです。 which gcc とコマンドを入力したときに何もメッセージが表示されない場合は無くなっています(使える場合は/usr/bin/gccなどと表示される)。 開発環境一式をインストールするにはAppStoreからXcodeをダウンロードすればよいですが、ファイルサイズが少々大きく、時間もかかります

                                • 【C言語】難解なポインタに挑む「忍法写し身の術!」その1 - Qiita

                                  ●はじめに こんにちは。 今回は、C言語で皆さんが最もつまずくとされているポインタについて説明していきたいと思います。 私もポインタは概念が難しく理解するのに時間がかかりましたがわかりやすく解説していきます。 「え、そもそもC言語とか初めてなんだけど。。。」 「プログラミングの基礎がわからない。」 という方向けの記事ではないので以下のサイトの基本編を学んでからこの記事を読んでください。 →一週間で身につくC言語の基本 「C言語の関数くらいまでならできるよー」 って方でポインタにつまずいている方は是非、読んでください。 ●アドレスとは ポインタを理解するためにアドレスから理解する必要があります。 「アドレスといえば住所でしょ」 そうです、その通りです。普段、変数には値を格納しますがコンピュータのメモリの中にあるため、その位置を表す数値であるアドレスが存在します。例えば、aという変数があるとき

                                    【C言語】難解なポインタに挑む「忍法写し身の術!」その1 - Qiita
                                  • GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust

                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                      GitHub - HiraokaTakuya/apery_rust: USI shogi engine written in Rust
                                    • GitHub - bluewhalesystems/sold: The sold linker

                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                        GitHub - bluewhalesystems/sold: The sold linker
                                      • C++23's Deducing this: what it is, why it is, how to use it - C++ Team Blog

                                        A free one-day virtual conference for the whole C++ community. Deducing this (P0847) is a C++23 feature which gives a new way of specifying non-static member functions. Usually when we call an object’s member function, the object is implicitly passed to the member function, despite not being present in the parameter list. P0847 allows us to make this parameter explicit, giving it a name and const/

                                          C++23's Deducing this: what it is, why it is, how to use it - C++ Team Blog
                                        • Build Throughput Series: More Efficient Template Metaprogramming - C++ Team Blog

                                          Dev BlogsC++ Team BlogBuild Throughput Series: More Efficient Template Metaprogramming In the previous blog post I shared how template specialization and template instantiation are processed in the MSVC compiler. We will now look at some examples from real-world code bases to show some ways to reduce the number of them. Example 1 This example is extracted from our own MSVC compiler code base. The

                                            Build Throughput Series: More Efficient Template Metaprogramming - C++ Team Blog
                                          • [C++] autoによるキャスト - 地面を見下ろす少年の足蹴にされる私

                                            C++23からauto(x)の形式のキャストが可能になります。 template<std::copy_constructible T> void f(T x) { T p = auto(x); // ok、C++23から } これに関連する仕様等のメモです。 prvalue値へのキャスト 細かい仕様の話 利点や用途 decay-copyとの違い 規格書における置き換え コンセプト定義における利用例 参考文献 prvalue値へのキャスト auto(x)の形式のキャストはxをその型をdecayした型の値としてキャストするものです。 型のdecayとはその型からCV/参照修飾を取り除き、配列/関数はそのポインタに変換するものです。配列/関数以外の場合、autoによるキャストはxをその型のprvalueへキャストします。 そして、auto(x)のキャストは単なる型変換ではなく、キャスト結果のpr

                                              [C++] autoによるキャスト - 地面を見下ろす少年の足蹴にされる私
                                            • Rust vs C++ Formatting

                                              In Rust, if I want to print some 32-bit unsigned value in hex, with the leading 0x, padded out with zeros, I would write that as: println!("{:#010x}", value); In C++23, if I want to do the same, that’s: std::println("{:#010x}", value); The only difference is the spelling of the name of the thing we’re calling (which is a function template in C++ and a macro in Rust) - otherwise, identical. Neverth

                                              • 【C++】UDP通信を実装する(Windows/Linux環境) - とある科学の備忘録

                                                UDP通信について この記事ですること プログラム(送信側) プログラム(受信側) 実行結果 解説(送信側) 初期化 【補足】ポート番号について データ送信 タイムアウト時間設定 解説(受信側) 初期化 データ受信 recv関数 recvfrom関数 ノンブロッキング処理(recv関数の受信待ちをしない) UDP通信について インターネットの通信は階層化されたプロトコル(通信する際の約束事)によって成り立っています。 例えば、Webサーバーとクライアント(サイトを見るブラウザ)の通信について考えてみます。 この時、ブラウザとサーバーはHTTPというプロトコルで通信を行っています。 例えば、指定のURLのページを見たい時には、ブラウザから「GET /index.html HTTP/1.1 Host: localhost:8080」のような命令がサーバーに送られます。そして、サーバーがその要求

                                                  【C++】UDP通信を実装する(Windows/Linux環境) - とある科学の備忘録
                                                • GitHub - rsta2/circle: A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)

                                                  Circle is a C++ bare metal programming environment for the Raspberry Pi. It should be usable on all existing models (tested on model A+, B, B+, on Raspberry Pi 2, 3, 4, 400, 5 and on Raspberry Pi Zero), except on the Raspberry Pi Pico, which is not supported. Circle provides several ready-tested C++ classes and add-on libraries, which can be used to control different hardware features of the Raspb

                                                    GitHub - rsta2/circle: A C++ bare metal environment for Raspberry Pi with USB (32 and 64 bit)
                                                  • [DirectX12] ハローワールドからFBXモデルを表示させるまで - Qiita

                                                    はじめに この記事はAkatsuki Advent Calendar17日目の記事です ノリでDirectX12に入門したらかなり大変だったので、やったことを全て書くことにしました 目的 本記事の目的は、3DグラフィックスやDirectX12の詳細な説明というより、 とにかくDirectX12で3Dモデルを描画するところまでを手元で実践できることです 最近では DirectX12に関する書籍がいくつか出ていて、だいぶ入門しやすい時代になったかとは思いますが、やはりまだハードルが高いなあと思った次第です その理由として、主観ではありますが、 3Dグラフィックスの知識が必要 コード量が膨大で複雑 が主なところかなーと思いました 1は3Dグラフィックスに関する書籍や記事などはすでに大量に存在しているので、知識を得ることはそう難しくはないのですが、 得た知識をいざ試してみようと思った時に、2の問題

                                                      [DirectX12] ハローワールドからFBXモデルを表示させるまで - Qiita
                                                    • C++20 Approach to Units of Measurement - Qiita

                                                      この記事はなんですか こんにちは。キャディでアルゴリズム開発をしている「いなむのみたまのかみ」です。 この記事は CADDi Advent Calendar 1日目の記事です。 ここ数年は型で単位をつけるライブラリを作るのが趣味になってしまいずっとそればかりやっている。 最近では、最強の単位計算ライブラリを作りながらC++20の勉強をしている。 そこでライブラリの機能紹介をしながら、勉強したC++20の機能や技法も紹介する記事を書くことにした。 ライブラリ概要 リポジトリはここ。 単なる数値に単位の型が付いて型安全で単位つき計算できるライブラリである。 # include <mitama/dimensional/prelude.hpp> # include <mitama/dimensional/systems/si/all.hpp> # include <iostream> using

                                                        C++20 Approach to Units of Measurement - Qiita
                                                      • Dropbox、ネイティブアプローチへの転換によってAndroidアプリの高速化と信頼性向上を実現

                                                        Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                          Dropbox、ネイティブアプローチへの転換によってAndroidアプリの高速化と信頼性向上を実現
                                                        • やはりC++はCよりも遅い?

                                                          とりあえず、残りは細かいことが多いので後で書かないと思うので一般的なことだけ少し書き残しておきます。大人の事情もあるので具体的なことは勘ぐらずに一般論の個人的な考えとしてお願いします。まぁ、今回の内容には直接の知財問題は無いとは思いますが。 例えば、ある程度大きなプログラムで、昔はCで書かれていて、バージョンが上がる度にプログラムは大きくなり、大きいプログラムのメンテナンスや開発効率のために、また更に新しい規格のC++の記法を用いたりしてバージョンアップをしていくことは往々としてよくある話かと思います。 記法が高度で複雑になるほど、最適化も難しくなるはずです。 C言語程度の単純な記法に対しては、「__builtin_expect()」 とか 「__attribute__()」 とか 「#pragma」 のいろいろな最適化指定も効きましたが、高度な記述の最適化に必要な高度なコンテキストをコメ

                                                          • c++のexplicit指定子の使い方まとめ

                                                            c++のexplicit指定子(explicit specifier)の使い方をググってもいい感じの情報にはたどり着けなかったのでメモ。 c++03まで #クラスのコンストラクタの宣言で explicit をつけると、次の2つの制限が適用される。 コピー初期化ができない暗黙の型変換ができないそれぞれコードで示すと以下のようになる。 class Test { public: explicit Test(int) {} }; void hoge(Test test) {} ina main() { // <コピー初期化> Test test1(0); // OK Test test2 = 0; // NG: intでコピー初期化はできない Test test3 = Test(0); // OK // </コピー初期化> // <暗黙の型変換> hoge(Test(0)); // OK hoge

                                                              c++のexplicit指定子の使い方まとめ
                                                            • DBサービスを作ろう その0 準備 - 豪鬼メモ

                                                              Tkrzw本体でやりたい事をやり切ったので、データベースサービスでも作ってみよう。既にガチなデータベースサービスは山ほどあるので、レッドオーシャンに敢えて飛び込むのも気が引ける。とはいえ、gRPCを使うとかなり気軽に高性能なサービスを実装できるので、日曜大工のつもりで取り組む。おそらく10回くらいの連載になるだろうか。これからしばらくデータベースサービスの設計と実装について述べていきたい。 初回は、gRPCの基本的な使い方を確認する。インストール方法、ビルドの自動化、APIの定義、実装、そしてテストまでの一連の流れを追う。 まず技術選定についてだが、これはもうgRPC一択なのだ。Tokyo TyrantやKyoto Tycoonでは、socketとかselectとかpollとかepollとかkqueueとかいったシステムコールを駆使して自分でRPC機能を実装していたが、面倒くさすぎる。競争

                                                                DBサービスを作ろう その0 準備 - 豪鬼メモ
                                                              • vcpkg: Accelerate your team development environment with binary caching and manifests - C++ Team Blog

                                                                vcpkg: Accelerate your team development environment with binary caching and manifests This post was updated on September 21, 2020 to add more information on the GitHub Packages binary caching example. Please see our Visual Studio 2019 version 16.8 Preview 3 release notes for more of our latest features. September is the biggest month for us in the Microsoft C++ team as it’s CppCon month! Our team

                                                                  vcpkg: Accelerate your team development environment with binary caching and manifests - C++ Team Blog
                                                                • 【Unity】Unityでマーシャリングを利用してDLLの関数を呼び出してみよう!

                                                                  はじめに こんにちは、情熱開発部プログラム2課の安東です。 入社してから今月で丁度一年、業務では経験を積む機会がたくさんありましたが、その中で初めてマーシャリングというものを扱うことになりました。 しかし、Web上には入門向けの記事が多くなく、学ぶのに少し苦労しました。 そういう経緯もありましたので、今回はUnityでマーシャリングをしてC#とネイティブプラグイン間でやりとりできるよう入門向けに解説していきたいと思います。 前提 今回はUnityにおけるマーシャリングを扱います。 その中でも、C言語リンケージのBlittable型とそのポインタ・構造体のマーシャリングが行えるよう入門向けに解説していきます。 .NET Frameworkも同様にC#ですが動作環境が異なりますので、それらの差異に関しては別のサイトをご参考ください。 マーシャリングとは そもそも、マーシャリングという言葉を聞い

                                                                    【Unity】Unityでマーシャリングを利用してDLLの関数を呼び出してみよう!
                                                                  • duckdb-spatial などの DuckDB 拡張(C++)をビルドする時のメモ

                                                                    duckdb-spatial にちょっとコントリビュートをしたかっただけなんですが、ビルドに手こずりまくったのでメモです。macOS と WSL(Ubuntu 24.04)ではこれでビルドできました。たぶん他の C++ 拡張でも同じだと思うので、参考になればと思いシェアします。 必要なものをインストール vcpkg duckdb の C++ 拡張は、依存ライブラリのインストールに vcpkg を使っています。extension-template の README に書かれている手順に従って vcpkg を導入します。 cd 適当な場所 git clone https://github.com/Microsoft/vcpkg.git sh ./vcpkg/scripts/bootstrap.sh -disableMetrics export VCPKG_TOOLCHAIN_PATH="$(p

                                                                      duckdb-spatial などの DuckDB 拡張(C++)をビルドする時のメモ
                                                                    • 8 More C++23 Examples

                                                                      In this article, you’ll see eight larger examples that illustrate the changes in C++23. C++23 brings a ton of cool features, as you can see in my two previous articles (here and here). So far, we explored each new addition one by one, but I’d like to share more examples that combine multiple features. Here we go: 1. std::ranges::to<> The ranges::to<> feature allows you to convert ranges into conta

                                                                        8 More C++23 Examples
                                                                      • csbindgenを使ってみる - Qiita

                                                                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                                          csbindgenを使ってみる - Qiita
                                                                        • Visual Studio Code C++ July 2021 Update: Disassembly View, Macro Expansion and Windows ARM64 Debugging - C++ Team Blog

                                                                          The July 2021 update of the C++ extension for Visual Studio Code is here, bringing you brand new features— such as a Disassembly View while debugging, inline macro expansions, and debug support for Windows ARM64 architecture—along with a bunch of enhancements and bug fixes. To find out more about all the enhancements, check out our release notes on GitHub. We’re excited to announce that Disassembl

                                                                            Visual Studio Code C++ July 2021 Update: Disassembly View, Macro Expansion and Windows ARM64 Debugging - C++ Team Blog
                                                                          • Integrating Rust and C++ in Firefox - In Pursuit of Laziness

                                                                            This post was originally drafted in August 2018, but I never got around to finishing it. As such, parts of its framing (e.g. the focus on bindgen) are outdated, given the relative infancy of the interop space at the time. I was recently told that the post is still useful in this form so I decided to finish and publish it anyway, while attempting to mark outdated things as such when I notice them.

                                                                              Integrating Rust and C++ in Firefox - In Pursuit of Laziness
                                                                            • 【C++】初期化子リスト関連機能を大雑把に理解する - Flat Leon Works

                                                                              C++11から初期化子リストが導入されました。初期化子リストは簡単に見えて結構難しい機能です。そこで初期化子リストを大雑把に理解するための記事を書いてみることにしました。理解することを優先しているので言葉の定義などが不正確だったりするかもしれません。というか筆者もC++11を勉強中の身なので大嘘書いている可能性もあります。間違っていたらごめんなさい。 はじめに 「初期化子リスト」 〜 std::initializer_list<T>型オブジェクトを楽に構築 〜 「リスト初期化」 〜 オブジェクト構築時の()を省略 〜 「統一初期化」 〜 通常のコンストラクタでもリスト初期化記法 〜 変数定義以外での「リスト初期化」「統一初期化」 初期化子リストの注意すべき仕様 {}を使ってもstd::initializer_list<T>にならない場合がある 「初期化子リスト」は式ではない 「リスト初期化

                                                                                【C++】初期化子リスト関連機能を大雑把に理解する - Flat Leon Works
                                                                              • "Clockwise/Spiral Rule''を使ってC言語の複雑な宣言を理解する - Qiita

                                                                                はじめに この記事を書いたきっかけ こんにちは,私は社会人2年目の組み込みエンジニアの下積みです.さほど詳しくなかったC言語を本格的に業務で使うようになって約9ヶ月,C言語って宣言が難しいな〜と思うようになりました.特に関数ポインタやダブルポインタ,その配列…などと考えるといくらでも複雑になります.例えば以下の画像のようなC言語の宣言に関する有名なジョークがありますね. これは勿論行き過ぎですが,多少複雑な宣言でも軽々と読めたらな,と調べる中で知ったのが表題の"Clockwise / Spiral Rule"です.これを使うと複雑な宣言でも結構簡単に読めてしまいます. しかしながら,調べてみると案外日本語で解説された記事が無いんですね.そこで折角面白いルールなので記事にして投稿しようと思った次第です. (日本語記事が周知の事実だから?それとも,あまり推奨されないような方法だから…?) この

                                                                                  "Clockwise/Spiral Rule''を使ってC言語の複雑な宣言を理解する - Qiita
                                                                                • 結局僕たちは intptr_t 同士を演算させても良いのか - 進捗置き場というわけでもない場所

                                                                                  C++ において intptr_t 同士の演算がどの程度許可されているのか気になって調べたら意外な事が見つかったのでメモ。 記事中の C++ 規格は 2020/08/09 現在の C++20 の最終 WD である N4861 を参照しています。 intptr_t の定義 そもそも intptr_t や uintptr_t はどう定義されているのか確認しましょう。C++ の規格においてはこれらの型は <cstdint> ヘッダの中に定義される適当な符号付き/符号なし整数型の using であって、コンパイラが実装するかは optional であるとだけ述べられており、その詳細は C ISO 7.20 を参照せよとぶん投げられています。仕方なく C11 の規格を参照し、§7.20.1.4 を読むと intptr_t について The following type (引用注:intptr_tのこ

                                                                                    結局僕たちは intptr_t 同士を演算させても良いのか - 進捗置き場というわけでもない場所

                                                                                  新着記事