![2023年に特にお世話になったC++ライブラリ8選 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/40709c2a8070536930553b021d0f05663ef3629c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9MjAyMyVFNSVCOSVCNCVFMyU4MSVBQiVFNyU4OSVCOSVFMyU4MSVBQiVFMyU4MSU4QSVFNCVCOCU5NiVFOCVBOSVCMSVFMyU4MSVBQiVFMyU4MSVBQSVFMyU4MSVBMyVFMyU4MSU5RkMlMkIlMkIlRTMlODMlQTklRTMlODIlQTQlRTMlODMlOTYlRTMlODMlQTklRTMlODMlQUE4JUU5JTgxJUI4JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1jYTdiOWRiYzgxZjk1YjJkMjFmNzY1Mzg4OTEzMmIxZA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwcHJpY2tsZSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NjQ2NDY4ZDg5ODMwZDg0YjEyMDllOGQzZTM0YzQyYTc%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Ddb2de9ca24de8b7950ec9ce2bc6aa005)
GCC と Clang の SSO が気になったので調べました。 SSO(Small-string optimization)とは 通常、std::string は文字列を確保する際、動的にメモリを確保します。 しかし "aaa" とか "hogehoge" とかの小さい文字列でメモリをアロケートするのは勿体無い。 何とかメモリを確保せずに済ませようと頑張って最適化された実装が SSO です。 具体的には、std::string オブジェクトの中に文字列を格納します。 こうすることで、メモリをアロケートせずに文字列を格納できます。 ただし、これは全ての std::string オブジェクトのサイズが増えることになります。 通常、std::basic_string には以下のデータが必要になります。 文字列の実体へのポインタ 利用している文字列のサイズ(size) 確保している領域のキャパシ
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com. This article describes C++11/14/17 features in Visual C++. C++11Feature List Visual C++ implements the vast majority of features in the C++11 core language specification, as well as many C++14 Library features and some features proposed for C++17. The following table lists C++11/14/17 core langu
The aim of the guidelines is to help people to use modern C++ effectively. By "modern C++" we mean C++11 and newer. In other words, what would you like your code to look like in 5 years' time, given that you can start now? In 10 years' time? The guidelines are focused on relatively higher-level issues, such as interfaces, resource management, memory management, and concurrency. Such rules affect a
すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画とテレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform W
後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか
1. 括弧の省略 if, while, for の括弧を省略する人はたくさんいるけど、switch も省略できるよ。 #include <iostream> using namespace std; char const * less_bracket(int n) { switch(n) if(false) case 0: return "zero"; else if(true) case 1: return "one"; else case 2: return "two"; } int main() { cout << less_bracket(0)<<" " << less_bracket(1)<<" " << less_bracket(2); } // 「zero one two」と出力
C++14で導入されるdecltype(auto)を使うと、returnとreturn (…)で戻り値の型が変わる。前者は値、後者は参照となる。 decltype(auto) f() { static int value = 3; return value; } decltype(auto) g() { static int value = 3; return (value); } int main() { int f_result = f(); int& g_result = g(); } 参照 C++11/14 and return( … ) vs return - StackOverflow C++14 通常の関数の戻り値型を推論
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く