Home > Archives > 24 September 2007

24 September 2007

boost::function で…

インライン展開失敗するなぁ.

#include <iostream>
#include <boost/function.hpp>
 
struct F_t {
  double operator()(const double & x) const { return 1.5 * x; }
} F;
 
inline double G(const double & x) { return 1.5 * x; }
 
int main(int argc, char *argv[])
{
  boost::function <double(const double &)> f = F;
  boost::function <double(const double &)> g = G;
  std::cout << f(2.0) << std::endl;
  std::cout << g(2.0) << std::endl;
}

ただの関数 g の場合はインライン展開されるけど関数オブジェクト f のときは bool boost::detail::function::has_empty_target(...) が展開できないといわれる.さてどうしたものか?

Home > Archives > 24 September 2007

Search
Feeds

Page Top