metafunction_swap.cc