
Hi, in boost, many template functions (but not all) use inline. (Example from boost/accumulators/framework/accumulator_set.hpp that uses inline: template<typename Args> inline accumulator_visitor<Args> const make_accumulator_visitor(Args const &args) { return accumulator_visitor<Args>(args); } Example from boost/algorithm/minmax.hpp hat doesn't use inline: template <typename T> tuple< T const&, T const& > minmax(T const& a, T const& b) { return (b<a) ? make_tuple(cref(b),cref(a)) : make_tuple(cref(a),cref(b)); } ) Is there a special reason why inline is used for template functions? I would expect that current compilers know better when inlining a function provides a benefit than the programmer. So I guess there is a better reason for using the inline keyword before template function than just speculative performance optimization, but I can't figure it out. Can anybody help me? Most libs only prepend inline before template functions, but ublas prepends nearly every member function with the macro "BOOST_UBLAS_INLINE", which expands to "inline". Is there a reason why ublas uses this macro? Regards, Thomas