我正在尝试在我的代码中使用 and_,但我遇到了它的返回类型的问题。我正在尝试将它与其他接受并返回 true_type 或 false_type 的元编程构造一起使用,并且我也将 SFINAE 重载与这些类型一起使用。boost::mpl::and_ 和 boost::mpl::or_ 从 mpl 的其余部分返回不同的类型。至少,在我看来是这样的。
mpl_::failed************ boost::is_same<mpl_::bool_<true>, boost::integral_constant<bool, true> >::************)
那么,我如何编写以下内容以使其通过断言?
template <typename T, typename U>
void foo(const T& test, const U& test2)
{
typedef typename boost::mpl::and_<typename utilities::is_vector<T>, typename utilities::is_vector<U> >::type asdf;
BOOST_MPL_ASSERT(( boost::is_same<asdf, boost::true_type::value> ));
}
void fooer()
{
std::vector<int> test1;
std::vector<int> test2;
foo(test1, test2);
}