Cドライブがきつきつで、ぴえんになってきたので
Dドライブの余ってる容量をCドライブに移動させた。
普通にディスクの管理からやると、一度Dドライブをバックアップしてから削除して、未割当て状態にするのが面倒くさかったので
無料でパーティションのリサイズ等をやってくれるソフトを探していたのだが
下記ソフトの無料版で対応できた。
Cドライブがきつきつで、ぴえんになってきたので
Dドライブの余ってる容量をCドライブに移動させた。
普通にディスクの管理からやると、一度Dドライブをバックアップしてから削除して、未割当て状態にするのが面倒くさかったので
無料でパーティションのリサイズ等をやってくれるソフトを探していたのだが
下記ソフトの無料版で対応できた。
関数型パラダイムの言語をあまり触れてこなかったので、最近Haskellを勉強中
書籍として すごいH本 を読んで勉強してます。
勉強用に実行環境を作りたかったのですが、だいたいいつも自分はちょっとした環境作成はDockerでやりたくなるので
今回もDockerでやろうと思っていたのですが
エディタ補完とかを考えると、どうしたものかと考えていたら DevContainer
という便利拡張に出会った。
こいつを使ってHaskellの実行環境を用意することに
repo ├ .devcointainer │ ├ devcontainer.json │ ├ Dockerfile │ └ docker-compose.yml └ src
{ "name": "Haskell Dev Container", "dockerComposeFile": "docker-compose.yml", "service": "haskell-dev", "workspaceFolder": "/workspace", "extensions": [ "haskell.haskell", "justusadam.language-haskell", ] }
# Dockerfile FROM haskell:latest # Install GHCup RUN curl https://get-ghcup.haskell.org -sSf | sh ENV PATH="/root/.ghcup/bin:${PATH}" RUN ghcup install hls # Set working directory WORKDIR /workspace # Copy project files to the container COPY . /workspace
version: '3' services: haskell-dev: build: context: . dockerfile: Dockerfile container_name: haskell-dev volumes: - ../src:/workspace tty: true
ちなみに、ほぼChatGPT
に書かせました。
ぶっちゃけちょっとコードを書くくらいならオンラインコンパイラが最強
本日のギャグです。
こちらのコードを見てください。
#include <cctype> #include <iostream> int main() { using namespace std; int32_t x = 0; if (x = x + 1) std::cout << "true"; }
C++で以下のコードを実行したら「true」と出力されたので、 「x = x + 1」はtrueになります。
したがって、x = 0より「0 = 1」である。
...
これは間違いですよね、、
C++で等値判定は「==」にしないといけないので正しくは以下のようにしないと判定できません。
- if (x = x + 1) + if (x == x + 1)
「=」にした場合はifの条件評価時にxにx + 1が代入されて「1」になるのでif文を通ったわけです。
では、「==」にして再確認してみましょう。以下のコードの実行はどうでしょうか?
#include <cctype> #include <iostraem> int main() { using namespace std; int32_t x = 0; if (x == x + 1) std::cout << "true"; }
なんとこれも「true」と表示されました。
やっぱり「0 == 1」なんですね!
iostraemに以下のコードを書いています。
#pragma once #include <iostream> struct kuso { constexpr kuso(){} constexpr kuso(int){} constexpr kuso operator + (int)const {return {};} constexpr bool operator == (kuso)const {return true;} }; #define int32_t kuso
くそすぎ
本日のギャグです。
#include <iostream> #include <algorithm> int main() { int a, b; std::cin >> a >> b; int max = std::max(a, b); int relax = std::relax(a, b); std::cout << max << ' ' << relax << std::endl; }
上記プログラム、一見正しそうですが、実はコンパイルエラーになります。
どこがいけないのでしょうか?
prog.cc:10:22: error: 'relax' is not a member of 'std'; did you mean 'replace'? 10 | int relax = std::relax(a, b); | ^~~~~
エラーを見ると上記のような記載があります。
int relax = std::relax(a, b);
これは、ついやってしまいがちなミスですが、relax
関数はC++の標準ライブラリに定義されていないのです。
こちらの修正方法を調べてたところ、以下の一行を追加することでコンパイルエラーを解消するようでした。
#define relax min
ちなみに、std名前空間に新しく関数を勝手に追加してはいけないので、std::relaxを追加することはできない。
テンション マックス!リラックス~
VisualStudioのソリューションに複数のプロジェクトを追加する際に 共通のコードを使用する方法のメモです。
新しいプロジェクトを追加 > 共有アイテムプロジェクト
プロジェクトへ参照の追加
以上
先日VisualStudio2022を更新した(17.7.266.26423)
そしたらモジュールがビルドできなくなったので、なんでだろうってなった
以下みたいなエラー
MSB3191 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\modules" を作成できません。指定されたパスのフォーマットはサポートされていません。 C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets 1016
調べていたところどうも
C++出力ファイルの
オブジェクトファイル名を %(IntDir)%(RelativeDir)
にしていたのが原因のようだった
※なお%(IntDir)%(RelativeDir)
にすると別フォルダにある同じファイル名をビルドできるようになる
この辺に書いてある
stack overflowにそれっぽい解決法を見つけたのでこれでいけた
いつもありがとうstack overflow。大好きだ
C/C++ > 言語 > ISO C++標準ライブラリモジュールのビルド
を Noにする<PropertyGroup> <EnableStdModules>false</EnableStdModules> </PropertyGroup>
まぁ備忘録としてメモですわ
ちなみに、stdモジュールも使いたい場合はどうするんだろう??
こんなもんVisualStudioのバグだろって気持ちになってます
私は、最近無職です。今もニートライフを楽しんでいます。
そんな私ですが、ありがたいことにモバイル系のゲーム会社から内定をいただいて無事に将来の夢であった”ゲームエンジニア”になることができました。
来年度から仕事が始まります!!
さて、無職だった私がどのようなことをして、ゲームエンジニアになったのか、これまでやってきたことを振り返ります。
このような経歴が評価されて、無職だった私も無事にゲームエンジニアになることができました。
来年から改めて頑張ります!
釣りでした。ごめんなさい。