目次 目次 「戻り値型の後置記法」って何? 何が嬉しいの? 問題点 「戻り値型の後置記法」って何? 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++上級者のための機能なんて下々の人間には関係ないじゃん、とお思いかもしれませんが、この機能にはもう一つわかりやすい大きなメリットがある
A practical comparison of build and test speed between C++ and Rust. Written by strager on 2023-01-05 Update (2023-01-07): bjorn3 found an issue with my Cranelift benchmarks. C++ is notorious for its slow build times. “My code's compiling” is a meme in the programming world, and C++ keeps this joke alive. “Compiling” by Randall Munroe, edited, CC BY-NC 2.5 Projects like Google Chromium take an hou
Back in August 2015 we replaced all spinlocks and OS-provided mutexes in WebKit with the new WTF::Lock (WTF stands for Web Template Framework). We also replaced all OS-provided condition variables with WTF::Condition. These new primitives have some cool properties: WTF::Lock and WTF::Condition only require one byte of storage each. WTF::Lock only needs two bits in that byte. The small size encoura
Two months ago, we open-sourced RisingWave, a cloud-native streaming database. RisingWave is developed on the mission to democratize stream processing — to make stream processing simple, affordable, and accessible. You may check out our recent blog, document, and source code for more information about RisingWave. Rome was not built in a day, and neither are database systems. We started developing
Warning The libc is not complete. If you need a fully functioning C library right now, you should continue to use your standard system libraries. Introduction¶ The libc aspires to a unique place in the software ecosystem. The goals are: Fully compliant with current C standards (C17 and upcoming C2x) and POSIX. Easily decomposed and embedded: Supplement or replace system C library functionality eas
March 23, 2012 Prerequisites This post will assume some familiarity with C++. The setup instructions also assume the server to deploy to is Ubuntu. This tutorial can be applied to other operating systems but I do not provide instructions on installing libraries on other operating systems. Why FCGI? FCGI (FastCGI) is a protocol in which web applications can talk to a web server to serve web request
cereal - A C++11 library for serialization cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone. cer
Overview Why do we need the copy-and-swap idiom? Any class that manages a resource (a wrapper, like a smart pointer) needs to implement The Big Three. While the goals and implementation of the copy-constructor and destructor are straightforward, the copy-assignment operator is arguably the most nuanced and difficult. How should it be done? What pitfalls need to be avoided? The copy-and-swap idiom
C++11で導入された enum class を static_cast で整数型にキャストしてむりくりfor文でループさせてるコードを見かけました。軽く調べたところ begin(), end(), operator*(), operator++()を定義すれば範囲for文で使えるようになるようです。 #include <iostream> using namespace std; enum class Dir { Top, Down, Left, Right, Max }; Dir begin(Dir) { return Dir::Top; } Dir end(Dir) { return Dir::Max; } Dir operator*(Dir dir) { return dir; } Dir operator++(Dir& dir) { return dir = Dir(underl
Photo by Alan Becker Capuyá 青木です。 先日、paizaのツイッターアカウント(@paiza_official)で出題した四択問題について、皆様からたくさんのご指摘・ご批判をいただいたので、その経緯と結論をお伝えします。 次のような問題を考えて出題しました。 int i = 0; のときに評価値が1になるのは— paiza[パイザ] (@paiza_official) 2016年12月26日 【補足】C言語,C++,Javaを想定しています— paiza[パイザ] (@paiza_official) 2016年12月26日 当初は、それぞれの評価値は順に2, 3, 1, 2となり、3つめの"i++ + i++"の選択肢が答えとなることを想定していました。 ですが、しばらくすると、次のようなリプライやツイートをいただきました。 全部C(たぶんC++/Javaも)だ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く