2021-01-01から1年間の記事一覧

可変長テンプレートでもstd::source_locationを使いたい!

この記事はC++アドベントカレンダー2021の記事です。 qiita.com 小ネタですが今日の分が埋まっていなかったので。 std::source_locationとは std::source_locationは、その名の通りソースコード中の位置を表す情報が入った構造体です。C++20以降で使うことが…

作って理解する浮動小数点数① 基本編

以前も浮動小数点数の記事を書いた(作る側の気持ちで理解する浮動小数点数 - in neuro)。だがその時は、浮動小数点数に関するアイデアの説明しかしておらず、実際の「浮動小数点数(IEEE754)」については説明しなかった。今回の記事の目的は、実際の浮動…

boost-ext/ut の使い方

C++

しばらくブログを書けていなかったのでちょっと準備運動をする。比較的長めのものをこれから書こうと思っているからだ。 github.com boost-ext/μtは、C++20用のテストライブラリだ。C++20らしくモジュールとしても使えるし、シングルヘッダオンリーライブラ…

Boost math constantsの変遷記録

C++

今日気づいたのだが、Boost.math.constants にある one_div_pi は Boost 1.71.0 以前には存在しない。 背景 Boost.math.constantsは、現時点ではC++で数学定数を取得するために最もよい方法だろう。これは、以下のようにして数学定数を取得できるライブラリ…

UARTで送受信

昨日の夜、"Hello World"を送信する回路がちゃんと動いて、安心して寝た。今日はPC -> FPGAの受信を書き、とりあえずこちらが送った文字をそのまま返すだけの回路を作った。少しは慣れてきたのか、シミュレーションでデバッグしたあと実機に焼いたら即動いた…

Artix-7で一周したら止まるLチカを書く

最初に書いたLチカは色を変えながらずっとループするものだった。その後、すぐにUARTを書こうとして文字の出力が止まらなくなった。今日は少し反省したので、謙虚にLEDを0から3まで順番に点灯させていって最後はすべて消して止まる、という回路を書こうと思…

Artix-7からUARTで通信しようとしていた

今のところ制御できていません。「A」と10回だけ出力しようとしたら「A」が無限に出力されてターミナルが埋まるし、「Hello World」と出力しようとしたら「・」が返ってきた。どういうこと? シミュレーションはうまくいってそうに見えるんだけど……。まあVer…

Artix-7でLチカ

突然何を始めたんだ?? 背景 高校の頃から生物を選択し、学部の頃は大腸菌の遺伝子を組み替えたりDNAで折り紙をしたりと割とWetな道をたどっていたはずなのだが、何の因果かどうやら回路設計に一枚噛む可能性が出てきたので、しばらくFPGA関係のことを調べ…

Windowsマシンを使う

というわけで設定していた。 初期設定としてやったことは、とりあえず Ctrl/CapsLockの交換 WSLでfish/powerline/tmuxを使う だ。これだけのことでメモしておこうと思うとは思わなかった。 Ctrl/CapsLockの交換 複数の方法が紹介されており、「そのためだけ…

特殊化が存在するかどうかをチェックする

C++

機能の紹介 toml11では、ユーザー定義型との間にいくつかの変換方式を提供している。 1つめはtoml::valueを受け取るコンストラクタを使用するもの。続いてfrom_toml(const toml::value&)というメンバ関数を定義するもの。最後にtoml::from<T>という構造体を定義</t>…

GCCの-Wshadowとその推移について、あとお前を消す方法

C++

-Wshadowは-Wallでオンにならない警告オプションで、shadowingを警告してくれる。 そもそも、実はC++にもshadowingというのはあり、ブロックを分けさえすれば同じ名前の変数を定義しても特に問題はない。ブロックが同じだとエラーになるのであまり便利ではな…

ビルドもできるヘッダオンリーライブラリ

C++

長いことまともな記事を書いていないのでリハビリをします。 ヘッダオンリーライブラリとして使えるものの、必要な場合はコンパイルできる、というライブラリはチラホラ見かける。例えば spdlog はその一つで、 "header only/compiled library" を名乗ってい…

ハンコを作ってもらった

技術記事ではない。