object generator
- make_pairなどのコードは大体似通っている
- 自動化してしまえ (実装)
- 結局マクロになってしまった
[]#include[] []<utility>[]
[]#include[] []<pstade/object_generator.hpp>[]
[]#include[] []<boost/tuple/tuple.hpp>[]
[]PSTADE_OBJECT_GENERATOR[][]([][]my_make_pair[][], [][]const[] []std[][]::[][]pair[][], ([][]by_value[][])([][]by_value[][]))[][]PSTADE_OBJECT_GENERATOR_WITH_A_DEFAULT[][]([][]my_tie[][], [][]boost[][]::[][]tuples[][]::[][]tuple[][],[]
[] ([][]by_reference[][])([][]by_reference[][])([][]by_reference[][])([][]by_reference[][])([][]by_reference[][]), [][]boost[][]::[][]tuples[][]::[][]null_type[][])[]
[]void[] []test[][]()[]
[]{[]
[]BOOST_CHECK[][]( ::[][]my_make_pair[][]([][]3[][], [][]2[][]).[][]first[][] == [][]3[][] );[][]int[] []x[][], [][]y[][], [][]z[][];[]
[] ::[][]my_tie[][]([][]x[][], [][]y[][], [][]z[][]) = [][]boost[][]::[][]tuples[][]::[][]make_tuple[][]([][]1[][], [][]2[][], [][]3[][]);[]
[]BOOST_CHECK[][]( [][]y[][] == [][]2[][] );[]
[]}[]