2010-10-26から1日間の記事一覧

BOOST_TYPEOF(exp)

#include <boost/typeof/typeof.hpp> #include <boost/type_traits/is_same.hpp> #include <boost/static_assert.hpp> BOOST_STATIC_ASSERT(( boost::is_same<BOOST_TYPEOF(10), int>::value )); BOOST_STATIC_ASSERT(( boost::is_same<BOOST_TYPEOF(0.0f), float>::value )); BOOST_STATIC_ASSERT(( boost::is_same</boost_typeof(0.0f),></boost_typeof(10),></boost/static_assert.hpp></boost/type_traits/is_same.hpp></boost/typeof/typeof.hpp>

戻り値で SFINAE

#include <boost/utility/enable_if.hpp> #include <boost/type_traits/is_integral.hpp> template<typename T> void func(T, typename boost::enable_if<boost::is_integral<T> >::type* = 0 ){} // 戻り値型は、enable_if の第二引数 template<typename T> typename boost::enable_if<boost::is_integral<T>, void>::type func2(T){}…</boost::is_integral<t></typename></boost::is_integral<t></typename></boost/type_traits/is_integral.hpp></boost/utility/enable_if.hpp>

ベクトル型いろいろ

#include <iostream> #include <boost/tuple/tuple.hpp> #include <boost/array.hpp> #include <boost/polygon/polygon.hpp> #include <boost/numeric/ublas/vector.hpp> #include <NxPhysicsSDK.h> #include <d3dx9.h> #include <opencv/cv.h> struct my_vec_type{ float x, y, z; }; int main(){ // ユーザー定義 my_vec_type m…</opencv/cv.h></d3dx9.h></nxphysicssdk.h></boost/numeric/ublas/vector.hpp></boost/polygon/polygon.hpp></boost/array.hpp></boost/tuple/tuple.hpp></iostream>

std::valarray

C++

#include <iostream> #include <valarray> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/adaptor/reversed.hpp> int main(){ std::valarray<float> array(100); std::valarray<float> result(100); // 代入したり演算したり array = 0.0f; array = array + 3.0f; // 関数の引数として渡せたり result = std::sin(array);…</float></float></boost/range/adaptor/reversed.hpp></boost/range/algorithm/for_each.hpp></valarray></iostream>