[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

c++に関するy_uukiのブックマーク (75)

  • キャメルケースよりスネークケースで。 - 偏見プログラマの語り!

    プログラムを書くとき、たいていは何らかの命名規則に従って識別子を書くわけですが、その種類はだいたい 2 つじゃないかと思います。 ・スネークケース:スペースをアンダースコアに置き換えた表現。( chocolate_pie, candle_cake, ... ) ・キャメルケース:スペースを詰めて次の語を大文字から始める表現。( chocolatePie, CandleCake, ... ) プログラムってのは名前が 8 割とか言うひともいますけども、なんだかんだと複合語を記述する場面は死ぬほどありますし、しかも多くのプログラミング言語がスペースをトークンの区切りとしている以上、何かルールを設けないといけないんですよね。そうしないと「複合語の中にあるスペース」と「トークン区切りとしてのスペース」を区別できない。区別できないっていうかプログラム書けない。 で、どういうルールで書くかっていうと標

  • C++マニアック,C++,const の使い方,usage of const

    キーワード const は、C++ の変数(オブジェクト)が定数であることを示すものです。「オブジェクトの内容を変更できない」というアクセス制御を行うときに使うわけです。簡単ですが、ポインタと絡むと const を書く位置によって意味が変わるので、このあたり、まとめておきましょう。後半では、クラスと共に使用する場合についても解説します。 最も簡単な場合 ポインタが絡む場合 const なクラスのメンバ変数 const なクラスオブジェクトを使う場合 最も簡単な場合 ページの先頭へ const を使う、最も簡単な場合とは、例えば、変更しない整数の定数を定義するような場合でしょう。次の例を見てください。変数 iL1、iL2 は、定数となり、値を変更できません。 int main() { // int 型変数と const int iL0 = 200; const int iL1 = 200;

    y_uuki
    y_uuki 2013/05/04
  • C++1y SIMDライブラリの提案 - Faith and Brave - C++で遊ぼう

    N3571 A Proposal to add Single Instruction Multiple Data Computation to the Standard Library ひとつのCPU命令で複数のデータを操作する、SIMD(Single Instruction Multiple Data)を抽象化したライブラリの提案。これは、スレッドを使用するタスク並列性に対して、データ並列性と呼ばれている分野の技術です。 この提案は、Boost.SIMDとしてBoostに提案される予定のライブラリが元になっています。Boost.SIMDについては、私が翻訳したスライド資料もあるので、合わせて参照してください(Boost.SIMDによる実用的なSIMDアクセラレーション)。 このライブラリは、SIMDを抽象化したpack型と、それに対して操作を行うaccumulate()やtransfor

    C++1y SIMDライブラリの提案 - Faith and Brave - C++で遊ぼう
  • ClangがC++11を完全実装! 繰り返す、C++11を完全実装

    [Phoronix] LLVM's Clang Compiler Is Now C++11 Feature Complete C++11 support is now feature-complete. · e6e68b5 · llvm-mirror/clang · GitHub 3時間前のコミットにより、Clangは晴れてC++11規格を完全に実装した。その通り、完全にすべて実装した。 コミットは、Inheriting Constructorsとthread_localの機能を有効にする変更だ。 もちろん、まだ実装にバグは残っているだろうし、規格上のバグもあるので、開発に終わりはない。ただし、今日は記念すべき日である。 static_puts said... そうすると、ますますC++11の重要性が高まってきますね! 「寄付のお願い」の方にも書かせていただいたのですが、書籍の執筆への寄

  • TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools

    This document provides an overview and comparison of various tools for debugging, profiling, and tracing C/C++ programs on Linux. It discusses concepts and implementations of debugging tools like gdb and Valgrind, profiling tools like gprof and perf, and tracing tools like strace, SystemTap, and LTTng. For each tool, it provides examples of common use cases and highlights strengths and limitations

    TIP1 - Overview of C/C++ Debugging/Tracing/Profiling Tools
  • C++14の新機能

    Meeting C++に、次期C++に要求されている機能や仕様の変更を紹介する記事「A look at C++14: Papers Part I」が掲載された。提案されている機能や変更から主なものを紹介することで、次期C++に関する状況がどのようなものかを伝えるとしている。紹介されている機能や変更を簡単に取り上げると次のとおり。 ポリモーフィックアロケータの導入 初期化処理の拡張 boost::optionalなどの型をstd::optionalなどの標準機能として取り込み OpenMPが実現している機能を標準機能として取り込み UDL (User Defined Literals)を標準ライブラリとして取り込み ダイナミック配列を標準ライブラリとして取り込み スレッドセーフな並列待ち行列を標準ライブラリとして取り込み C++にシェルのパイプラインと同様の機能を導入 ストリームに対するmu

  • Boost.Lockfree ロックフリーキュー - Faith and Brave - C++で遊ぼう

    Boost 1.53.0には、Boost.Lockfreeという並行コンテナのライブラリが入りました。 このライブラリにはスタックとキューが用意されていますが、よく使うのはキューの方でしょう。 使い方は以下のようになります。 #include <iostream> #include <thread> #include <boost/lockfree/queue.hpp> boost::lockfree::queue<int> que(128); void producer() { for (int i = 0;; ++i) { while (!que.push(i)) {} } } void consumer() { for (;;) { int x = 0; if (que.pop(x)) { std::cout << x << std::endl; } } } int main() {

    Boost.Lockfree ロックフリーキュー - Faith and Brave - C++で遊ぼう
  • Valgrind でメモリリークをデバッグ - tomykaira makes love with codes

    2013-01-28 Valgrind でメモリリークをデバッグ C++ C/C++ でメモリリークをデバッグするツールはいくつかある。代表的なものだと mtrace ccmalloc dmalloc LeakTracer valgrind など。 OpenCV と X11 を使ったプログラムのデバッグにおいて、 valgrind が役にたった。 使い方を他のツールのものもあわせてメモしておく。 紹介しているブログ記事や、それぞれのツールの example では通常短いプログラムを例に出している。 短いプログラムでそれなりの結果がでるのはあたりまえで、ライブラリを使って長時間動く複雑なプログラムにどれだけ対処できるかが腕のみせどころである。 今回は再現が簡単で、実行時間もせいぜい10分もとれば十分だったので、ケースとしてはそんなに難しくなかったが、規模が大きくなると解析結果を見ることすら困

  • Boost.Logが採択されました - Faith and Brave - C++で遊ぼう

    Boost.Log formal review result ロギングライブラリ、Boost.Logが採択されました。 レビュー時に見つかった問題点を修正した後、正式にBoost入りすることになります。 ドキュメント ダウンロード(BoostLog.zip) Boost.Logは以下のような特徴があります: シンプルなロギング処理 ログレベルの設定 フォーマットの設定(自作フォーマット、CSV、XML等) 非同期出力 イベントログ サンプル: #include <iostream> #include <boost/shared_ptr.hpp> #include <boost/make_shared.hpp> #include <boost/log/common.hpp> #include <boost/log/formatters.hpp> #include <boost/log/fil

    Boost.Logが採択されました - Faith and Brave - C++で遊ぼう
  • Boost.Asioばかり触っていた人がcpp-netlibを調べてみた - とりあえず適当な名前にした

    この記事はC++ Advent Calendar 2012 24日目の記事です.こんな記事ですけど((( 今日はイブらしいですけど,当然予定なんてありません.悔しくなんて無いしっ さて,cpp-netlibというライブラリについて紹介するのですが,似たようなライブラリ(BoostConnectとかtwit-libraryとか…)を作ってたりしたので実装に興味があったのと,簡単な日語エントリーが少ないよなぁってことで,これについて調べてみようと思ったのがこのエントリーを書くきっかけです. cpp-netlibとは まずはあまり知らない人のために軽く概要を. cpp-netlibはクロスプラットフォームなネットワーク関連のライブラリとして開発され,Boost.Asioを中心に様々なBoostのライブラリを使用することで実現しています.簡単に言うとBoost.Asioのラッパーなライブラリです

    Boost.Asioばかり触っていた人がcpp-netlibを調べてみた - とりあえず適当な名前にした
  • Yohei Yoshihara's Home Page

    MySimplePlan More Detail Magquash More Detail Previous Next

  • http://clutil.googlecode.com/svn-history/r108/trunk/examples/MatrixMultiply/Matrix.h

  • C++ AdventCalendar 2012 9日目 「Boost.AsioでGraceful Restart」 - にゃははー

    C++ Advent Calendar 2012 - PARTAKE の9日目です。 今回は Boost.Asio で Graceful Restart してみたいと思います。 ※Unix依存コードなのでWindows環境はわからないです。あしからず。まぁWinで鯖とか... Graceful Restart とは Graceful(ぐれーすふる, 優雅な) Restart とはサーバーアプリケーションなどで稀に実装されることがあるdaemonの再起動方法です。有名所だと Apache httpd なんかは実装しています。停止と再起動 - Apache HTTP サーバ 手順 通常の Restart の場合、 旧プロセスがシグナル等を受け取る 直ちに全てのセッションをぶった切る 旧プロセスが停止 新プロセスが1から立ち上がる という手順を踏みます。その瞬間にどれだけのクライアントが接続しよ

    C++ AdventCalendar 2012 9日目 「Boost.AsioでGraceful Restart」 - にゃははー
  • Page Redirection - GNU Project

    This page has been incorporated into another. If you are not redirected automatically, click here. For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archi

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • Boost.Asio streambufからstd::stringに変換する - Faith and Brave - C++で遊ぼう

    streambuf::data()で、mutable_bufferまたはconst_bufferがとれるので、それに対してbuffer_castを使用する。 void receive(boost::asio::streambuf& buffer) { const std::string result = boost::asio::buffer_cast<const char*>(buffer.data()); } よくある、streambufをstd::istreamを通じてstd::stringに変換するようなサンプルは、ストリームによって必要なスペースが削られたりと、ストリーム固有の問題で嵌ることがあるので、この方法が素直で簡単です。 サンプル #include <iostream> #include <string> #include <boost/asio.hpp> #includ

    Boost.Asio streambufからstd::stringに変換する - Faith and Brave - C++で遊ぼう
  • Boost.Asio 送受信バッファをメンバ変数に持たないためのイディオム - Faith and Brave - C++で遊ぼう

    Boost.Asioで非同期通信を書いていると、送受信のためのバッファをメンバ変数に持つ必要が出てきて、局所化が難しい場合があります。 この解決策として、以下のようなイディオムを使うことで送受信バッファをローカル変数化することができます: 送受信バッファをshared_ptrで包む async_read, async_writeにshared_ptrを間接参照したバッファを渡す このままでは送受信関数のスコープを抜けた時点でshared_ptrが消えてしまう 送受信のハンドラにshared_ptrのバッファをbindする io_serviceは内部でハンドラ関数のキューをメンバ変数として管理してるので、bindされたshared_ptrのバッファはハンドラの呼び出しが終了するまで寿命が尽きない つまり、メンバ変数の管理を、部分適用されたハンドラとio_serviceで隠してしまうのです。

    Boost.Asio 送受信バッファをメンバ変数に持たないためのイディオム - Faith and Brave - C++で遊ぼう
  • Boost.Asioまとめ(1)::io_service - yutopp's blog

    Boost Advent Calndar 2011に恐縮ですが参加させて頂きました。15日目です。 最初はBoost.Asioについてまとめるぞーと意気込んでいたものの変に長くなってしまったのでBoost.Asioの中のio_serviceに絞ったためこんなタイトルに成り申した。 Boost.Asioとは 主にネットワークのI/Oのような時間のかかってしまう処理を非同期的かつ簡潔に扱えるようにした便利なライブラリです。 ネットワークを中心に、シリアルポート、タイマー、シグナルのハンドリングなども扱えます。 と、いうわけでio_serviceです。 Windows環境にてVC++10、Boost1.48.0を用いています。 io_service 全てはこのクラスに始まり、このクラスに終わります。 各OSの提供するI/O制御への橋渡しをしてくれるもので、Asioの提供するIOサービス(dead

    Boost.Asioまとめ(1)::io_service - yutopp's blog
  • NS Blog - development blog

    JavaScript (not to be confused with Java) is a flexibleContinue readingJavaScript case Go (often also Golang) is a compiled, multithreaded programming language developed internally by Google. The Go language was designed to create highly efficient programs that run on modern distributed systems and multi-core processors. Go is a strongly statically typed language. Has a fairly concise and simple s

  • それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C++erの雑記帳

    Boost.Optional Must Go - 野良C++erの雑記帳 Boost.Optional Must Go (2) - 野良C++erの雑記帳 最近、何回かに分けて、 Boost.Optional について、(細かい)不満を日記に書いてきました。 これは別に Boost.Optional が嫌いだから不満を書いた訳ではなく、むしろ その逆、 Boost.Optional が便利な分、逆に不満点が目立つので書いていたわけですが、 よく考えたら、 Boost.Optional の便利さを、纏まった記事で書いていないなー、 と、そう思い至ったので、この辺で Boost.Optional を徹底的に推奨する記事でも書いてみようかな、 というわけで、さんざん既出なネタばかりですが、折角なので書いてみることにしましたよ。 冒頭に挙げた以外で参考になるような記事は、この辺でしょうか: C++

    それでも Boost.Optional を使う、大きく分けて2つくらいの理由 - 野良C++erの雑記帳