タグ

c++に関するendo_5501のブックマーク (73)

  • C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌

    目次 目次 「戻り値型の後置記法」って何? 何が嬉しいの? 問題点 「戻り値型の後置記法」って何? C++11から導入された言語仕様です。 タイトルの呼び方は自分が勝手に使っているだけで、英語圏だと「trailing-return-type」がよく使われるらしい。 cpprefjp.github.io この仕様を使うと例えば以下のようなコードが int Add(int a, int b) { return a + b; } このようになります。 auto Add(int a, int b) -> int { return a + b; } 何が嬉しいの? この仕様はC++のメタプログラミングで戻り値型の推論を簡単に行う目的で使用されます。 なんだ、そんなC++上級者のための機能なんて下々の人間には関係ないじゃん、とお思いかもしれませんが、この機能にはもう一つわかりやすい大きなメリットがある

    C++erは全員戻り値型の後置記法を使おう - ペイントソフト開発日誌
    endo_5501
    endo_5501 2024/05/09
    ほえー、こんな記法あったんだ... “Q.戻り値型が見づらい A.耐えてください。”
  • llama.cpp の動かし方と量子化手法

    はじめに Turingアドベントカレンダー17日目です!今日は Research チームの柏谷が担当します。 Research チームでは、LLMによる完全自動運転を実現するための技術開発を行っています。その中で重要な技術の1つが量子化です。量子化によって少ビットでパラメータを表現できれば、LLM の膨大なパラメータのデータ圧縮が可能となります。量子化実装はいろいろと考えられますが、今回は実装にアクセス可能な llama.cpp とその量子化技術について見ていきましょう! llama.cpp とは Georgi Gerganov さんが作った PCCPU だけで LLM が動くプラットフォームです。その名の通り Llama, Llama2 が動くというだけでなく Bloom, StableLM などいくつかの LLM がサポートされています。LLM は従来、データセンターで大量のGP

    llama.cpp の動かし方と量子化手法
    endo_5501
    endo_5501 2024/03/06
    おおー、すごい。ggufの内部にまで踏み込んで説明している記事初めてみた
  • C++ MIX #9

    C++ 開発が少し便利になる、最近の Visual Studio の機能」C++ MIX #9

    C++ MIX #9
    endo_5501
    endo_5501 2024/02/10
    まあ、便利っちゃあ便利かな
  • C++ をclang で解析するときに情報をvcxproj から取得する方法 - 見切り発車

    この記事はC++ Advent Calendar 2023 の5 日目です。 前に書いたものを簡単に流用しやすくなるように意識してまとめなおしたものです。 C++ でリフレクションやシリアライズを行うためにコードを解析したくなる場合があると思います。 その時の選択肢としてclang(libclang) やそのバインディングを利用するというのは以前から見かける方法です。 さらにWindows でのプログラミングの場合はlibclang に渡すためのインクルードパスなどの情報をVisual Studio のvcxproj から取得しようというアイディアも以前から存在しています。 例えば2017 年のヘキサドライブさんの記事(https://hexadrive.jp/hexablog/program/18139/) や2019 年のランカースさんの記事(http://www.lancarse.c

    C++ をclang で解析するときに情報をvcxproj から取得する方法 - 見切り発車
  • Account Suspended

    Account Suspended This Account Has Been Suspended

  • ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers

    ゲーム開発者のための C++11~C++20, 将来の C++ の展望 - CEDEC2020 - Speaker Deck
    endo_5501
    endo_5501 2020/09/02
    ゲーム開発者のための C++11~C++20, 将来の C++ の展望
  • GitHub - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS

    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 - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS
  • Rustが敗北!?C++で書かれた新時代のWebアプリケーションフレームワーク「drogon」 - Qiita

    つい昨日(日時間では今日)、TechEmpowerが行っているWebアプリケーションのベンチマーク結果が更新されました。 なんと、Round 18ではRustのフレームワーク「actix-web」が2位以下に大差をつけて圧勝していたにも関わらず、Round 19ではさらにそれを上回るライブラリが出現しました。 その名もdrogon! 名前からして素晴らしいフレームワークの予感がしますが、Rustのactix-webとはどのような点で異なり、またどのようにしてこの速度を達成したのか気になったので調べてみました。 フルスタックのライブラリ drogonはフルスタックのWebアプリケーションフレームワークとして実装されています。つまり、(actix-webとは違い)データベースとのやり取りを行うAPIやJSON, ORM, HMRなどさまざまな機能が盛り込まれています。 一方actix-web

    Rustが敗北!?C++で書かれた新時代のWebアプリケーションフレームワーク「drogon」 - Qiita
  • C++ is faster and safer than Rust: benchmarked by Yandex

    To get the licence for your open-source project, please fill out this form

    C++ is faster and safer than Rust: benchmarked by Yandex
  • 競プロに便利な C++17 新機能まとめ - Qiita

    AtCoder の言語アップデート で、C++17 対応コンパイラが使えるようになりました。やったー! この記事では、競技プログラミングに役立つ C++17 の新しい標準ライブラリ・言語機能を 16 個紹介します。 サンプルコードは、AtCoder の GCC 9.2.1 システムで動作を確認しています。 C++17 標準ライブラリ機能 1. 値を範囲内に収める std::clamp(x, min, max) 値 x を、min 以上、max 以下に収めてくれる関数です。 これまで std::max(std::min(x, max), min) と書いてたのが 1 つの関数で済みます。 #include <bits/stdc++.h> int main() { // 値を 0 以上 100 以下に収める std::cout << std::clamp(50, 0, 100) << '\n'

    競プロに便利な C++17 新機能まとめ - Qiita
  • Using enum

    C++20にはusing enumが入る。この機能、すっかり見逃していた。 どのような機能かというと、scoped enumを名前空間のusing directiveのように使うことができる。 using enumがないと以下のように書かなければならないが enum struct color { red, green, blue } ; void f( color c ) { switch( c ) { case color::red : break ; case color::green : break ; case color::blue : break ; } } using enumを使えば以下のように書ける。 enum struct color { red, green, blue } ; void f( color c ) { using enum color ; switch

    endo_5501
    endo_5501 2019/11/08
    これは良い
  • コナンがC++のシングルバイナリの問題解決!? - Qiita

    バイナリはいつも1つ!! たった1つのバイナリ作る!見た目はコマンド!なかみはPython!その名は、パッケージマネージャー!コナン! 作業用BGM https://t.co/nj0p6lpm8o — こたうち@VTuberエンジニア (@kotauchisunsun) August 22, 2019 大体,言いたいことの9割ぐらいは言えたので満足です. 俺は高校生探偵のsudo sync which.幼なじみで同級生のrunと遊園地に遊びに行って・・・ 先日,Photogrammetry on Docker ~ サーバ屋さんもXRしたい ~という記事を書きました. これは,「フォトグラメトリができるDockerコンテナを作る」というのが主目的ではあったのですが,サブの課題として,「マルチステージビルドをする」「コンテナサイズの削減をする」といった目標がありました.何のため?ということを少

    コナンがC++のシングルバイナリの問題解決!? - Qiita
    endo_5501
    endo_5501 2019/09/16
    "たった1つのバイナリ作る!見た目はコマンド!なかみはPython!その名は、パッケージマネージャー!コナン!"
  • GPLv3でライセンスされた自由な技術書の電子書籍を買う理由

    江添亮の詳説C++17の電子書籍の売上に対する印税の通知書がアスキードワンゴから送られてきた。額としては微々たるもので、9ヶ月かけて執筆した労働力に対する収入としては圧倒的に少ない。私がドワンゴに雇用されていて安定した給与所得があるのでなければ割に合わない。回らない寿司が何度かべられる程度の額だ。 アマゾンで江添亮の詳説C++17を購入:https://www.amazon.co.jp/dp/4048930605 ところで、このはGPLv3でライセンスされた自由なだ。当然ソースコードが公開されている。 https://github.com/EzoeRyou/cpp17book にもかかわらず電子書籍に金を払う理由はなぜだろう。しかも、その電子書籍の中にはAmazonKindleのような不自由なも含まれているのだ。 AmazonKindleで多くのを読んでいるので、不自由ではあ

    endo_5501
    endo_5501 2019/07/13
    “C++と並列処理について書かれたAnthony WilliamsのC++ Concurrency in Actionの翻訳もアスキードワンゴから出版される予定だ”
  • 富士通C++コンパイラの最適化機能の改善について

    watanabe-chiba-report.md 2.4 富士通C++コンパイラの最適化機能の改善について 東京大学物性研究所 物質設計評価施設 渡辺宙志 富士通株式会社 次世代テクニカルコンピューティング開発部 千葉修一 ※ 稿はメニーコア時代のアプリ性能検討WG 成果報告書にて公開された内容を整形したものです。 2.4.1 はじめに HPC分野においては、FortranないしC/C++言語が広く使われている。Fortran、C言語、C++言語のいずれも活発に仕様が改定され、現在も発展し続けている言語ではあるが、数値計算向けの「普段使いの言語」としては、おそらくPythonJuliaなどの方が広く使われていると思われる。特にPythonは、昨今の機械学習ブームの牽引役として広く使われているようである。今後、PythonJuliaといった言語によるスパコン利用も増えていくと思われる

    富士通C++コンパイラの最適化機能の改善について
  • Recommendations to speed C++ builds in Visual Studio - C++ Team Blog

    Get notified in your email when a new post is published to this blog In this blog, I will discuss features, techniques and tools you can use to reduce build time for C++ projects. The primary focus of this post is to improve developer build time for the Debug Configuration as a part of your Edit/Build/Debug cycle (inner development loop). These recommendations are a result of investigating build i

    Recommendations to speed C++ builds in Visual Studio - C++ Team Blog
  • C++のenumの値を文字列にできるライブラリnameofがすごい - Qiita

    はじめに 2019/7/10追記 NAMEOF_TYPEの例が0.8.0以降のバージョンで動かない問題を修正しました (Thanks! @tyu_ru_cppさん) C++だと「enumで定義した名前を文字列にしたい」というときに困ることがたまによくあります。他の言語だとToStringメソッドを使って文字列にできたりするのですが、C++だとそうはいきません。 Qtを使うと独自の黒魔術によって比較的楽に取得することができるのですけども、Qtを使わないピュアなC++な環境だとどーすんだろっていう感じです。 そこで、Siv3dの作者さんである@Reputelessさんが、まさにそのenumから文字列の変換ができるライブラリについて呟いておられまして、その機能と実装方法に感銘を受けたので、ここで紹介したいと思います。 C++ で enum の値を追加の記述無しで文字列にできるライブラリだ (MS

    C++のenumの値を文字列にできるライブラリnameofがすごい - Qiita
    endo_5501
    endo_5501 2019/04/05
    “Qtを使うと独自の黒魔術によって”
  • 江添亮のC++入門

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

  • 4つのauto、4つのC++規格 - Qiita

    template <auto N> auto func(auto x) { auto r = N + x; return r; } // 呼出し例 assert( func<1>(0.5) == 1.5 ); この記事では、C++言語仕様改定により導入された各autoキーワードの役割を説明します。同時に、該当用法が存在しなかった時代でもコンパイル可能なソースコードへの書換えも行います。 C++20時代 C++20では 関数パラメータ型にautoを書ける ようになります。これはC++言語仕様へのコンセプト(Concept)導入とともに追加された、関数テンプレート定義の短縮記法 です。

    4つのauto、4つのC++規格 - Qiita
  • モダンなC++におけるコンパイル時間削減のテクニック (第2弾) - Qiita

    はじめに まさかの第2弾です。 前回の記事が好評だったため、今回は少し違った視点からコンパイル時間の削減についての話をさせていただこうと思います。 C++17も普及してきたようで、C++の構文はますます複雑化しています。テンプレートを使用したテクニックやconstexprの需要の増加に伴い、ヘッダオンリーのライブラリの増加、コンパイル時処理の増加が見られるようになりました。 しかしそれと反比例して、C++のコンパイル時間は増大していきます。 一つの翻訳単位でもコンパイル時間が数十秒、あるいは数分に及ぶことさえあり、さらにコンパイル中のメモリ消費量も問題になってきます。 あるヘッダオンリーライブラリを利用した時は、たった一つの翻訳単位でメモリの6割を消費してしまいました。 前回の記事では、主にソースコードに工夫を加えることによってコンパイル時間を削減する方法を紹介してきました。なので今回は、

    モダンなC++におけるコンパイル時間削減のテクニック (第2弾) - Qiita
  • モダンなC++におけるコンパイル時間削減のテクニック - Qiita

    はじめに C++は他の高級言語と比べると、run-time性能で優れています。C++11、C++14ではテンプレートを使ったテクニックが多く登場し、静的型言語特有のデメリットを大きく解消することとなりました。 しかし... ... ... ... ............. 遅い!!! コンパイルが終わらない!!! 複雑なテンプレートテクニックを使用したライブラリとかだと、どうしてもコンパイル時間が肥大化してしまう。 というわけで今回は、C++11以降の「モダンなC++」においてコンパイル時間を削減させるテクニックをいくつか紹介します。 対象となる読者 C++のテンプレートや共有ライブラリを使用した経験があり、C++の優れたテンプレートの機能を活用したいが、コンパイルに時間がかかって困っている人。あるいは、C++で書かれたライブラリの開発に携わっている人。 コンパイル時間削減のためのテクニ

    モダンなC++におけるコンパイル時間削減のテクニック - Qiita