changeset 20:3fd21f4cadc3

backup 2021-01-10
author autobackup
date Sun, 10 Jan 2021 00:10:03 +0900
parents ac8a0febc79b
children 4a2bfdc45e69
files user/anatofuz/note/2021/01/09.md
diffstat 1 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/anatofuz/note/2021/01/09.md	Sun Jan 10 00:10:03 2021 +0900
@@ -0,0 +1,26 @@
+# 2021/01/09
+
+```c
+typedef struct AtomicT <T>{
+    union Data* atomicTImpl;
+    T newData;
+    __code checkAndSet(Impl* atomicTImpl, T newData, __code next(...), __code fail(...));
+    __code next(...);
+    __code fail(...);
+} AtomicT;
+```
+
+# tの置換
+- Tの境界が指定されていない場合
+    - 置き換えられるかの確認
+    - 置き換えられそうならコードを生成する
+        - 型(header)
+        - CodeGear
+- Tの境界が指定されている場合
+    - 型チェック
+        - data gearの同一性
+        - primitive typeはwrapeperをいれる?
+    - 置き換えられそうなら置換する
+
+いずれにせよ.cbcと.hを生成する必要がありそう
+    - 動的にコンパイルする必要があるので、CMakeをいじる必要性がありそう...