らんだむな記憶

blogというものを体験してみようか!的なー

C/C++

pybind11

Boost.Python(2) - らんだむな記憶 で Boost.Python について触れたが、そもそも Boost があまり好きではない。ということで pybind11 が気になるところ。とは言え、C 拡張を求めるほど速度について不満を持っている事項がない・・・。 pybind11でC++の関数…

fontforge (6)

fontforgeデバッグ(4) - らんだむな記憶 でレポートしたバグがちょうど数時間前に close された。5 年半とは随分と長い歳月だったなぁ〜。予想したよりも遥かに根の深いバグだったようで、正直読んでも分からない議論がなされている。たぶん GitHub Issues …

左辺値と右辺値

みんなlvalueとrvalueを難しく考えすぎちゃいないかい? - Qiita というのがある。 lvalue := 名前のあるオブジェクト rvalue := 名前のないオブジェクト 正しくないと指摘はあるが分かりやすい。 右辺値、左辺値などの細かい定義 - Qiita だと急に小難しく…

Argument Dependent Lookup(実引数依存の名前検索)

ADLのトンデモ挙動と対策のお話 - Qiita std::string str1( "abc" ); std::string str2( "abcd" ); if( str1 == str2 ) { ... } // if ADL is disabled, no operator==() is found. if( std::operator==( str1, str2 ) { ... } // ok おっと・・・言われてみ…

std::array の引数を省略してしまう

#include <cstdio> #include <array> int main(void) { constexpr std::array a{1, 2, 3}; for (const auto& e: a) { printf("%d\n", e); } return 0; } こういうものを書いたとして、いかにもな箇所が std::array<int, 3> a{1, 2, 3}; であれば clang++ -std=c++11 くらいでコンパ</int,></array></cstdio>…

ローカルオブジェクトを返す

ロベールのC++教室 - 第44章 テンポラリ - をチラ見しつつ、改めてローカルオブジェクトの return には色んな意味でちょっと抵抗を感じてしまう。 最後に補足しておくと、VC++だと、テンポラリオブジェクトを参照に代入すると、寿命が参照の寿命に…

Linux技術者のためのC言語入門

Linux技術者のためのC言語入門 寺西氏による Tera Term を OSS 化した平田氏の本。ご本人による輪読会も過去にあったようだ。なかなか興味深いが言うほどに入門書ではないようなので、本当の素人向けの輪読会では難しい・・・のかな? スッキリわかるC言語入…

C++ のバージョンごと機能

C++11, C++14, C++17 新機能まとめ ~使いそうなものだけ - QiitaOS 本読んでたら見たことなるの、ないのが入り混じってたので、ざっくりどんな感じの機能があるのかをぼんやり眺めてみる。コンパイラの実装状況 - cpprefjp C++日本語リファレンスを見ると、…

VSCode で C++ でインデントを空白 x2 にしたい

いまいち分からないのだが、 ローカル [settings.json] { ... "C_Cpp.clang_format_style": "{BasedOnStyle: Google, IndentWidth: 2}", "C_Cpp.clang_format_fallbackStyle": "{BasedOnStyle: Google, IndentWidth: 2}", } リモート [.vscode/settings.json…

インラインアセンブラ

やや不安は残るが試しに書いてみた。 #include <stdio.h> static int return_ret(void) { __asm__("mov eax,0x3"); } int main(void) { int ret = return_ret(); printf("%d\n", ret); return 0; } これを clang でコンパイルすると $ clang -O0 -g -masm=intel main.</stdio.h>…

M1 用クロスコンパイル

別に今のところはどうでもいいんだけど。 How to cross compile for Apple M1 host on linux x86_64 build machine? : cpp_questions とかかな。ARMv8 用のクロスコンパイラでいいんじゃね?って見えるけど。それでいいんかな。 c - Build Apple Silicon bin…

Compiler Explorer

Compiler Explorer なかなか面白いな。

TensorFlowとC++

macOSにおけるtensorflow 2.0 C++でビルド後にXcodeで使えるようにする - Qiita [Python]KerasをTensorFlowから,TensorFlowをc++から叩いて実行速度を上げる - Qiita 茨の道のような気がしてきた・・・。

C言語のサンプル

侍エンジニア塾のC言語のサンプルがヤバすぎる。 - Qiita ふむふむ。まぁ、気になったところ以外に沢山あると。あぁ、確かにというのが沢山・・・。GC 任せで自分でメモリ解放しなくなったせいで SAFE_FREE みたいなマクロ書いて通すとか忘れちゃったなぁ。 …

MSVC の STL の実装

GitHub - microsoft/STL: MSVC's implementation of the C++ Standard Library. へー

XMLの整形

GitHub - leethomason/tinyxml2: TinyXML2 is a simple, small, efficient, C++ XML parser that can be easily integrated into other programs.でわりと綺麗にできる。[Makefile] TARGET = xml_beautify all: $(TARGET) .PHONY: $(TARGET) $(TARGET): c++ …

C言語の最初の本

C言語〈1〉はじめてのCプログラミング (プログラミング学習シリーズ) K&R 第2版を意味もわからずに購入したのを除いては、これが最初の1冊だったような気がする。

C++17

C++11, C++14, C++17 新機能まとめ ~使いそうなものだけ C++11からC++17を駆け抜けるC++講座 C++14も使っていないというのにどんどん知らない世界が広がっている・・・

nullptr

NULL と nullptr って何が違う? - Qiita についてVisual Studioでも使えるのかなぁ?と思って調べてみた。 nullptrを見る限り、Visual Studio 2012以降で使えそう。ってことはよっぽどの事情で古いコンパイラを使っているとかでない限り普通に使えるわけだ…

struct.unpackのようなC++的方法

Python's struct.pack/unpack equivalence in C++ - Stack Overflow serialization - pack/unpack functions for C++ - Stack Overflow そんなものはない。ntohlとかで頑張れ的世界。

Rationale for C99

C99 - Wikipediaを見ていてやっと思い出した。 http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdfだなぁ。なんてタイトルのドキュメントだったかすっかり忘れていた。 よくこういうドキュメントが欲しいと思ってしまう。規格とかガチガチ書…

コアダンプ

ulimit -c unlimited を久しぶりに使う。が、どこにcoreファイルができているんだ...。 ということで調べたところ、Macでは /cores の下にできるようだった。そうなのか...。 lldb hogeProg -c /cores/core.123 のようにしてcoreファイルを指定して、 (lldb)…

push_frontとpop_front

まぢほすぃーとかよく思ったもんだ。 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0563r0.pdfというものが某C++に詳しいサイトから引用されていたので、ふむふむする。 そうか、 push_front と pop_front はダークスペルなのかwww まぁ、そう…

constexpr

#include <cstdio> constexpr int num(int a = 1) { if ( a == 1 ) { return 314; } else { return 271; } } int main(void) { char buf[ num(1) ]; printf("%lu\n", sizeof(buf)); return 0; } こんなの書いて、 $ clang++ -O3 -S -o main.s -std=c++14 main.cpp し</cstdio>…

C++本

Objective-Cがやりたい気持ちだけはいっぱいだが、やはりC++も押さえておきたい。 改訂新版 C++ポケットリファレンスなる本を紹介してもらったので最近だらだら読んでいるが、C++14も触れられていてイイね。c++ - Compile time string encryption using cons…

clang (2)

clang - らんだむな記憶で何か書いたけど放置してた。 なんか最近イライラするなぁということで、software installation - How to install LLVM 3.9 - Ask Ubuntuを見ながら衝動的に deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.9 main deb-sr…

はめきん(9)

ダメぽかったら一時的に情報をキャッシュして後から突っ込んだらいいかなと思ったけどダメぽい。うーん。 diff --git a/dll/winproc.cpp b/dll/winproc.cpp index a168187..299685e 100644 --- a/dll/winproc.cpp +++ b/dll/winproc.cpp @@ -219,6 +219,16 @…

はめきん(8)

あれ?Spy++で見ると、 [D3DWindower] <001684> 00060516 S WM_SETCURSOR hwnd:00060516 nHittest:HTCLIENT wMouseMsg:WM_LBUTTONDOWN <001685> 00060516 R WM_SETCURSOR fHaltProcessing:False <001686> 00060516 P WM_LBUTTONDOWN fwKeys:MK_LBUTTON xPos:…

はめきん(6)

DxWnd - Browse Files at SourceForge.net からDxWndのソースコードが落とせるなぁ。 dll/kernel32.cppで本来のkernel32.dllを偽装しとるようだ。 extGetVersionが本来のGetVersion APIの偽装版か。 host/TabCompat.cppで設定したFAKEVERSIONがあればそれに…

ちょっとだけharfbuzz(7)

いまさらだがgdbいけた。 harfbuzz/util/.libs/hb-view を叩けば良かった。 Makefile類で「-g -O2」になっているところを「-g -ggdb -O0」に書き換えて再ビルド。 で、 $ cgdb ./.libs/hb-view デバッガ越しに起動して、 (gdb) set env LD_LIBRARY_PATH ../s…