タグ

2019年8月21日のブックマーク (5件)

  • printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita

    def check(n) s = "*"*n f = open("test.cpp","w") f.puts <<EOS #include <cstdio> int main(){ (#{s}printf)("Hello World\\n"); } EOS f.close() return system("clang++ test.cpp") end check(ARGV[0].to_i) $ ruby check.rb 10000 clang: error: unable to execute command: Illegal instruction: 4 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 10.0.1 (clang

    printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
    MonMonMon
    MonMonMon 2019/08/21
    オモロー
  • C で関数に * や & を付けられる件の説明 - Qiita

    規格として C11 (n1570) を参照する。 注意: 途中に入れた図が崩れるようなら、半角・全角比が 1:2 になるようなフォントを使って閲覧してください。 現象 wandbox で実行 ソース: ( &printf)(" &printf = %p\n", &printf); printf (" printf = %p\n", printf); ( *printf)(" *printf = %p\n", *printf); ( **printf)(" **printf = %p\n", **printf); (***printf)("***printf = %p\n", ***printf); この現象を解説する。 関数呼び出し まず、関数呼び出しについての規定を見る。 The expression that denotes the called function shall have

    C で関数に * や & を付けられる件の説明 - Qiita
    MonMonMon
    MonMonMon 2019/08/21
  • MQTT Version 3.1.1 をふりかえる - OPTiM TECH BLOG

    ご無沙汰してます。中野です。 相変わらずNATSやNSQやら、AWSやAzureやらと戯れてます。 はじめに IoTの流行りとともに脚光を浴びた通信プロトコルにMQTTと呼ばれるものがあります。 MQTTがIoTのシーンにおいて、HTTPなどの他のプロトコルと比較して、 プロトコル的にどう優れているのか、どう劣っているのか、結局ユースケース次第なのでここでは割愛します。 ただ事実としてあるのは、 Amazon Web Services (AWS) Microsoft Azure Google Cloud Platform (GCP) らが、IoT向けのメッセージブローカーとしてMQTTをサポートした以上、 MQTTというプロトコルの存在を無視はできないということです。 (製品に採用するかどうかは、ユースケース次第なのでまた別の話です。) (MQTTそのものの良し悪しより、それぞれのクラウド

    MQTT Version 3.1.1 をふりかえる - OPTiM TECH BLOG
  • Goなどでクロスコンパイルしたワンバイナリなソフトウェアを最小工数でdeb/RPMパッケージにしてくれるNFPMが便利 - Copy/Cut/Paste/Hatena

    みなさんはdeb/RPMパッケージを作ったことはありますか? 私はtcpdpのパッケージ作成ではじめて作りました。具体的にはここらへんです。 tcpdpはlibpcapに依存していることもあり、DockerでUbuntu/CentOSの環境を作ってその上でコンパイルして、合わせてdeb/RPMパッケージ化までするようにしています。 Goはクロスコンパイルができるので、コンパイルしてできたバイナリをdeb/RPMパッケージにできればいいわけです。 ただ、意外にdeb/RPMパッケージをするための前準備が面倒です。 debパッケージであればcontrolファイルを書かないといけないですし、RPMパッケージであればspecファイルを書く必要があります。それぞれ覚えているほど書く機会はないので毎回ググるはめに。 ビルド方法にもお作法があります。これもあまり覚えていませんがディレクトリ構成などい

    Goなどでクロスコンパイルしたワンバイナリなソフトウェアを最小工数でdeb/RPMパッケージにしてくれるNFPMが便利 - Copy/Cut/Paste/Hatena
  • Boost.Hana の紹介! - Qiita

    はじめに Boost.Hana は、Boost の新しくて速いメタプログラミングライブラリです。また、公式リファレンスでの説明は以下の通りです。 Hanaは、型と値の両方の計算に適したC++メタプログラミング用のヘッダーオンリーライブラリです。 それが提供する機能は、十分に確立されたBoost.MPLおよびBoost.Fusionライブラリによって提供されるもののスーパーセットです。 C ++ 11/14の実装手法とイディオムを活用することで、Hanaは以前のメタプログラミングライブラリと同等以上のコンパイル時間とランタイムパフォーマンスを誇り、プロセスの表現力を大幅に向上させます。 Hanaはアドホックな方法で簡単に拡張でき、Boost.Fusion、Boost.MPL、および標準ライブラリとすぐに使用できる相互運用を提供します。(主に google 翻訳です) この記事では、この Bo

    Boost.Hana の紹介! - Qiita