タグ

関連タグで絞り込む (318)

タグの絞り込みを解除

c++に関するslay-tのブックマーク (148)

  • 非推奨だった bool 型に対するインクリメント演算子を削除 [P0002R1] - cpprefjp C++日本語リファレンス

    概要 C++17ではbool型に対する前置および後置のoperator ++を削除する。 bool型に対する前置および後置のoperator ++とはC++98の時点で非推奨になっていた機能である。 具体的にどのような働きをするのかというと、以下のように値をtrueに書き換える機能をもつ。 #include <iostream> int main() { bool b = false; const bool b1 = ++b; std::cout << std::boolalpha << b1 << std::endl; // => true const bool b2 = ++b; std::cout << std::boolalpha << b2 << std::endl; // => true }

  • PythonがJavaに迫る勢い - 7月PYPL開発言語ランキング

    2017年7月の「PYPL PopularitY of Programming Language」が公開された。PYPLはGoogle検索エンジンにおいてプログラミング言語のチュートリアルが検索された回数から、対象となるプログラミング言語がどれだけ話題になっているかをインデックス化したもの。チュートリアルの検索回数を人気度と位置づけてランキングしている。 2017年7月におけるインデックスは次のとおり。

    PythonがJavaに迫る勢い - 7月PYPL開発言語ランキング
  • HAProxyをソースからビルドしてporgでパッケージ管理を行う | DevelopersIO

    大栗です。 動的名前解決ができるHAProxyを使いたくなったのですが、Amazon Linux 2017.03でもHAProxyが1.5.2であるためソースからビルドする必要があります。ソースからビルドすると管理が行いにくくなるので、ソースインストールを管理できるporgを使って管理してみます。基的には標準リポジトリでインストールできるものを使いたいのですがリポジトリのバージョンが上がっていないので仕方がありません。。。 2017年10月5日:手動で作成したファイルの追加方法がわかったので追記しています。 porgとは? 以前はpacoという名前のプロジェクトでしたが、現在はporgとして開発が進められています。 ソースからビルドしたソフトウェアを管理できるツールです。 試してみる 以下の環境で試してみます。 OS: Amazon Linux 2017.03 インストール対象: HAP

    HAProxyをソースからビルドしてporgでパッケージ管理を行う | DevelopersIO
  • Wandboxを支える技術(2017年版) - Qiita

    Wandbox は、オンラインでコンパイルや実行が試せるサービスで、主に私(@melponn) と @kikairoya で作っています。 以前 Wandboxを支える技術 というのを書いていたのですが、そこからかなり変わっているため、改めて今の中身がどうなってるかについて書いていきます。 Wandbox は、Wandbox 体と、各種コンパイラをビルドするための Wandbox Builder に分かれています。 ソースコードは wandbox と wandbox-builder にあります。 2019/9/26 追記: Wandbox のビルドを CMake に移行した話 を書きました 犬小屋と牛舎 Wandboxはバックエンドとフロントエンドで分かれていて、フロントエンド側が 犬小屋(kennel) 、バックエンド側が 牛舎(cattleshed) という名前になっています。 犬小

    Wandboxを支える技術(2017年版) - Qiita
  • Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita

    あと5年もすれば「Railsしかできない奴はいつまで経ってもRailsしかできない」て言われるようになるよ - ledsun のコメント / はてなブックマーク 5年と言わず、今すぐ言おう。 流行りだと言われてRailsをやってみることにする。 Railsチュートリアルを一通りやる。 それなりの物ができる。 チュートリアルに毛が生えた程度はできる。 他のフレームワークに挑戦してみる。 Sinatraやってみたけど、Rubyの基礎がわかってないから、挫折する。RailsがあればSinatraなど不要と言って、Sinatraを貶す。なお、RailsとSinatraの違いはわかってない。 いっそ、他の言語に挑戦してみる。 Javaやってみたけど、オブジェクト指向の基礎がわかってないから、挫折する。Smalltalkこそがオブジェクト指向の流であり、C++風のオブジェクト指向は似非と言って、Ja

    Railsしかできない奴はいつまで経ってもRailsしかできない - Qiita
  • constexpr ifの落とし穴

    会社の同僚から、以下のようなコードが動かない、ネット上をググると解決策らしきものが見つかるがそれもいまいち納得できない、という相談を受けた。 template < typename T > void f() { if constexpr ( std::is_same<T, int>{} ) { // Tがintのときのみ発動してほしい // 実際は常に発動する static_assert( false ) ; } } C++17にはconstexpr ifが追加された。これは条件付きコンパイルではない。条件付き実体化抑制だ。 constexpr ifは以下のように使う。 struct S { int value() { return 42 ; } } ; template < typename T > int to_int(T t) { int value{} ; if constexpr

  • Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」

    おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 最速と言われる JSON パーサ「rapidjson」が当に爆速なのか試してみた。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、JSMNを試してみた。 何も見ずにC++でjsonパーサが書けるか試してみた。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! C言語から使えるJSONパーサ、jansson がとても直感的で良い Big Sky :: C++ で STL フレンドリに扱えるJSONパーサ「json.hpp」 結

    Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
    slay-t
    slay-t 2017/05/11
  • TypeScriptの総称型(Generic Type) - JavaScript勉強会

    JavaScript学習のついでに、TypeScriptも学んでみます。 今日は、TypeScriptの「総称型」という機能について調べてみました。 オンラインのTypeScript実行環境 総称型とは? 総称型の仕組み 型引数とは? 型の情報(種類)を入れておく変数 用語 総称型と多重定義の違い (1)似た機能の関数がバラバラに用意されている状態 (2)引数を使って似た機能をまとめた関数 (3)引数のデータ型が違うけど、機能が似ている関数 (4)「Any型」で全部の型を引き受けられる関数 (5)オーバーロードで型チェックを実現した関数 オーバーロード(多重定義)とは? シグネチャーとは? (6)オーバーロードした関数を総称型で1つにまとめる 総称型の使いどころ 総称型(ジェネリック)の特徴 リファクタリングとは? まとめ オマケ オンラインのTypeScript実行環境 ブラウザー上で、

    TypeScriptの総称型(Generic Type) - JavaScript勉強会
  • Wandboxのスポンサーになるべく、めるぽんに肉をおごってきた

    WandboxというWebサイトがある。これはコードを与えるとコンパイルメッセージと実行結果を返してくれるサービスを提供している。コードとコンパイルメッセージと実行結果を保存してURLで共有する機能もある。 ここまではよくあるサービスだが、Wandboxが他のサービスと差別化を図っているのは、コンパイラーの種類だ。様々な言語のコンパイラーをサポートしているのみならず、同じコンパイラーでも複数のバージョンを提供している。これにより、あるコードの挙動がコンパイラーのバージョンで異なる場合の特定ができる。 なぜそんなサービスが必要なのか。コードぐらい自分のローカル環境で実行すればいいではないか。リモート環境にしたって、今日びVPSなど月数百円から使うことができる。ブラウザーから入力する程度の短いコードをコンパイルして実行するぐらい低スペックの格安VPSでも足りるではないか。 問題は、バージョンの

  • https://qiita.com/kotauchisunsun/items/191f2c818813b7ea543e

  • Rust開発者のためのC++入門書:所有権と借用について | POSTD

    今日、ソーシャルサイト「reddit」を見ていたら、“ Rustの基礎を学んでからC++を始める場合 、何を勉強すればいいか”と問う投稿があり、私は自分のブログを復活させ、その中で質問への答えを書いたら面白いのではと考えました。 私にはRustを学んだ後にC++を扱う仕事に就いた経験があるため、Rustの経験を持つ人がC++に移行していく様子をまとめてみたいと思ったのです。 稿はC++の構文と特徴を既に知っていて、RustからC++の世界に移行する方法に興味を持っている読者を対象とします。 しかし、私は全てに精通しているわけではないので、稿では所有権(ownership)、借用(borrowing)、ライフタイム(lifetime)に焦点を当てて説明していきます。 所有権と移動 Rustの一番大きな特徴は所有権です。所有権は、プリミティブ型ではない値に対するデフォルトの動作として、コピ

    Rust開発者のためのC++入門書:所有権と借用について | POSTD
  • Big Sky :: Protocol Buffers を利用した RPC、gRPC を golang から試してみた。

    grpc/grpc · GitHub gRPC - An RPC library and framework https://github.com/grpc/grpc gRPCGoogle が開発しているRPC(リモートプロシージャコール)のライブラリとフレームワークで、通信層は HTTP/2 を介して行われます。 データ層については、固定されている訳ではなくあくまでデフォルトで Protocol Buffers が使われる様になっています。使用出来るプログラミング言語は現在、C++, Node.js, Python, Ruby, Objective-C, PHP, C# となっています。 実はこれら以外にも grpc-go という、なぜかこのリストに加えられていないオフィシャルリポジトリがあります。 grpc/grpc-go - GitHub gRPC-Go The Go impl

    Big Sky :: Protocol Buffers を利用した RPC、gRPC を golang から試してみた。
  • LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ

    コンパイラを作ってみたいと思っていても、アセンブリ言語はよくわからない。 パーサーみたいなコードは書いたことがあるけれど、コード生成の処理はさっぱりだ。 実行ファイルをバイナリエディターで見るとかなにそれ怖い。 そんな私なのですが、LLVMに興味を持ち始めています。 SwiftRust、あるいはEmscriptenなど、近年注目されている言語やコンパイラ技術の中枢にはLLVMがあります。 アセンブリはよく分からなくてもLLVMを使いこなせるようになれば、マルチプラットフォームで実行ファイルを生成できる言語処理系を作るのではないか。 コンパイラ作ってみたいな、LLVMを使ってみようかなと思っている今日このごろです。 ところが、いざLLVMを勉強しようと思ってもどこから始めればいいかよく分かりませんでした。 マニュアルは巨大で読む気が起きないし、リファレンスを見てもさっぱりです。 雰囲気はわ

    LLVMを始めよう! 〜 LLVM IRの基礎はclangが教えてくれた・Brainf**kコンパイラを作ってみよう 〜 - プログラムモグモグ
  • 変数からポインタまで、5分でわかるC言語入門(C11対応版) - paiza times

    こんにちは、吉岡(@yoshiokatsuneo)です。 Java, C#, C++、Objective-C, Ruby, Python, JavaScript, Java, Swift...などなど、現在は非常に多くのプログラミング言語が使われていますが、多くの言語の源流となっているのがC言語です。 もともとC言語は、LinuxMac OS Xの源流となるUNIXの開発のために作られた言語で、今でもLinuxはC言語で書かれていますし、多くのOSがCやC++で開発されています。 さらに、C言語はコンピュータを直接操作することに向いているため、組み込みやIoT(Arduino, mbed等)などの用途でも広く使われています。 C言語の文法は、多くのプログラミング言語の文法に影響を与えています。 名前にCが含まれているC++、C#、Objective-Cはもちろん、Java, JavaSc

    変数からポインタまで、5分でわかるC言語入門(C11対応版) - paiza times
  • Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研

    Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することによりメモリ安全およびデータ競合安全をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスがない状態を表します。ただし、Rust の言うメモリ安全とは、メモリリークをしないことを保証するものではありません。 データ競合安全とは、あるひとつのオブジェクトに対しての読み込みおよび書き込みのが同時に起き結果が不定になる状態にならないことを表します。競合状態とは異なります。 無名関数という概念を様々な言語が次々と導入したように、プログラミング言語は相互に影響を及ぼし徐々に変化しています。Rust は「寿

  • 米Microsoft、テストプラットフォーム「Visual Studio Test Platform」を公開 | OSDN Magazine

    Visual Studio Test Platform(VS Test)は拡張性のあるユニットテスト実行フレームワーク。中核となるプラットフォームランナー、ホストプロセスなどをオープンソースで公開した。 土台となるテストエンジンによるテスト実行に加えて、並行化やプロセスの分離も行える。Visual Studioに統合できるほか、ほかのテストフレームワーク向けへの拡張も可能で、テストインパクトの分析、データ収集、テスト結果レポートなどの作成機能も持つ。 C#をはじめC++JavaScriptなど様々な言語で書かれたテストを動かすことができる。多数のテストフレームワークをサポートしており、テストアダプタはVS marketplaceで公開されている。新しいテストアダプタはオープンソースとしては公開していないが、多くの人が使用しているという「MSTestV2」については1ヶ月後にオープンソース

    米Microsoft、テストプラットフォーム「Visual Studio Test Platform」を公開 | OSDN Magazine
    slay-t
    slay-t 2017/01/25
  • c++とアセンブリ言語で画像を反転させてみる - Qiita

    この記事は自分用の備忘録です。解説用ではないです 追記2: 結果だけ先に発表すると、OpenCVが約16ms、C++ with asmが約3msまで高速化されました。最後のコメント欄まで読んでいただければと思います。 きっかけ カメラから画像を取得して、それを反転させて表示するプログラムを開発しています。 画像の反転をOpenCVを使っているのですが、画素数が大きいのでもう少しなんとか早くならないものかと、取り組んでみました。 残念ながら、私が使っているデバイスのCPUは、OpenCLをサポートしていない、ので、GPUにデータを乗っける方法が使えないのです。 使えたら、OpenCV3で、高速化してしまうんですけどね。 ということで、イバラの道としりながら、アセンブリ言語に進んでいきます。 NEON命令 NEON命令とは、arm系CPUにおいて、1命令で複数データをまとめて処理できる命令だそ

    c++とアセンブリ言語で画像を反転させてみる - Qiita
  • なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由 | yunabe.jp

    結論としてはGo言語には以下のようないくつかの長所があり、現実路線で非常にバランスがとれた言語だと思います。 これらの長所のために失われたメリットも当然いくつもありますが、一定程度以上の規模のプロジェクトで利用する言語の選択肢としては現存するプログラミング言語の中では一番か二番目によいのではないかと思います。 コンパイルが速い (vs. C++) GCとメモリ安全性 (vs. C++) 妥当で現実的なレベルの型安全性 (vs. Python/Ruby) 実行時パフォーマンスが良さ (vs. Python/Ruby) 現実問題、ある程度の規模と期間のプロジェクトになると型検証があるとリファクタリングなどがだいぶ楽になるのでありがたい。 型があるので自然と実行時パフォーマンスも良い 標準ライブラリが整備されている (vs. C++) むしろ標準ライブラリにjsonのparserすら存在しないC

  • C++er は“合法”だとか“違法”だとか言いたくて仕方がないけれど、結局どういう意味? それより適合・適格・○○動作・○○規則・診断不要いろいろの関係が謎 - Qiita

    ※conditionally-supported は C++03 の時点では存在しなかったので、その翻訳である JIS に対応する概念は現れません。この記事では今後便宜のため「条件付き対応」などと呼称することにします。 日語訳は何やら微妙なものが多いですね。外から見た動作 や 診断を必要としない はもっと用語っぽくした方が良いのではという気がします (観測可能動作 とか 診断不要 なんていうのはどうかな)。それから ○○の動作 の「の」もない方がそれっぽい気がします。 更に、検索してみると NDR の訳は以下のように発散していてまるで統一されていません。 JIS X 3014:2013 より 診断の必要はない 診断は不要とする 診断は要求されない 診断は,不要とする 診断は,必要としない 診断は,必要ない 診断を必要としない 診断メッセージは不要とする 診断メッセージは必要としない 診断

    C++er は“合法”だとか“違法”だとか言いたくて仕方がないけれど、結局どういう意味? それより適合・適格・○○動作・○○規則・診断不要いろいろの関係が謎 - Qiita
  • コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita

    三行で頼む コンパイラが斜め上の最適化をするようになったからnull安全ないと怖いよね 一行で終わっちゃった。 文 最近、ツイッターを見ていると、プログラマの間でnull安全という言葉がバズっていますね。私も次のようなエントリを楽しく眺めていた訳です: null安全でない言語は、もはやレガシー言語だ null安全はいいぞ。だって、型安全はいいぞ。 null安全を誤解している人達へのメッセージ さてそんな中、少しだけ私の心に留まったエントリがこれです: null安全な言語は、当にゼロコストか これを読んで、私がまず直感的に思ったのは、むしろもはやnull安全のない言語はダメかもしれないということでした。こう書くと、このエントリの内容を否定してると誤解されるかもしれませんが、全くそんなことはありません。このエントリの筆者さんもnull安全の有用性を否定しているわけではないですし、私も古いタ

    コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita