uoj++开发日志

/oh

Posted by ShanLunjiaJian's Blog on April 12, 2023

打算用cpp重写一个uoj,或者重写一个qoj也行啊!


使用的库

https://github.com/yhirose/cpp-httplib

https://github.com/pantor/inja

https://mariadb.com/docs/skysql/connect/programming-languages/cpp/

https://github.com/System-Glitch/SHA256

https://github.com/goldsborough/markdownpp


构建

cpp-httplib和inja都是单头文件的。

安装mariadb,mariadb connector cpp。


关键是makefile应该如何写

让我学学cmake。


各种东西都照搬uoj。要是想改的话以后再说。

但是cpp不能直接嵌入到html里,尝试了crow及crow::mustache,感觉不够灵活,于是换用cpp-httplib和inja。换掉了crow是因为反正要拆开,crow显的有些笨重了。


考虑了一下如何实现shared_ptr

看起来这东西其实很好严格$O(1)$,大家都存同一个cnt的指针即可。


session和cookie

比如你要实现登录的时候,是把一个token存在用户的cookie和服务器的数据库里。session是把这个token存在用户的cookie和服务器的内存里。

不过既然抛弃了crow,大概会全部使用前一种写法了吧。