必要そうなサイト色々2
LibTomProject
http://www.libtom.net/
多倍長整数ライブラリや、暗号ライブラリなど。
ライセンスがゆるゆる。
Crypto++も素晴らしいのだが、最適化しても実行ファイルサイズが簡単に1MBくらい増えるのでこちらを調査してみる。
Releaseビルドのlibを使った時に、_aes_descが未解決エラーを出すが、原因はtomcrypt.libのプロジェクト設定にある。
Debug版にはカスタムビルドが定義されているのだが、Release版にはないのが原因。
http://stackoverflow.com/questions/15557035/visual-studio-2010-libtomcrypt-build-or-library-linking-error
プロジェクトファイルに下記の後半を書き加える(前半は最初から存在する)
<CustomBuild Include="src\ciphers\aes\aes.c"> <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /MTd /W3 /Gm /EHsc /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /Fo"Debug/" /Fd"Debug/" /FD /RTC1 /c %(FullPath) cl /nologo /DENCRYPT_ONLY /MTd /W3 /Gm /EHsc /ZI /Od /I "src\headers" /I "..\libtommath" /D "_DEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Debug/libtomcrypt.pch" /Fo"Debug/aes_enc.obj" /Fd"Debug/" /FD /RTC1 /c %(FullPath)</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug/aes.obj;Debug/aes_enc.obj;%(Outputs)</Outputs> </CustomBuild> <CustomBuild Include="src\ciphers\aes\aes.c"> <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /MT /W3 /O2 /I "src\headers" /I "..\libtommath" /D "NDEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /Fo"Release/" /Fd"Release/" /FD /c %(FullPath) cl /nologo /DENCRYPT_ONLY /MT /W3 /O2 /I "src\headers" /I "..\libtommath" /D "NDEBUG" /D "LTM_DESC" /D "WIN32" /D "_MBCS" /D "_LIB" /D "LTC_SOURCE" /D "USE_LTM" /Fp"Release/libtomcrypt.pch" /Fo"Release/aes_enc.obj" /Fd"Release/" /FD /c %(FullPath)</Command> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release/aes.obj;Release/aes_enc.obj;%(Outputs)</Outputs> </CustomBuild>
Boost C++ Libraries日本語コミュニティのWebサイト
https://boostjp.github.io/
Boost逆引きりリファレンスが便利。
C++1zに現状入る予定の言語拡張
http://www.slideshare.net/faithandbrave/c1z-draft
だいぶ実装済みになったので、微妙なものばかり残ってますな。
- 厳密な式の評価順序
評価順序はコンパイラの最適化のために自由度をあげていたみたいですが、実質みんな同じになってたし。
それなら厳密に定義されてくれた方がありがたい。
- インライン変数
地味に便利かもしれん。
- 低レイヤーの文字列・数字変換
も便利かも? sprintfいちいち呼ぶの面倒だったしなー。
システムコールについてどれくらいご存じですか?
http://www.atmarkit.co.jp/ait/articles/1111/16/news161.html
最近コンテキストスイッチの挙動に興味津々なので。
IPv6ソケットプログラミング
http://www.nslabs.jp/socket.rhtml
最近IPv4とIPv6両方対応しろと、世間がうるさいので。