is_base
numaralı tablonun bir şablon olmadığı yerde kullanabiliyordum. Ancak, olduğu zaman, türetilmiş türlerle genel olarak eşleşmenin hiçbir yolunu görmüyorum. Burada ne demek istediğimi temel bir örnek: Şablon uzmanlıklarında şablon tabanını eşleştirmek mümkün mü?
#include <boost/mpl/bool.hpp>
template < typename T >
struct test_base
{
};
template < typename T >
struct check : boost::mpl::false_ {};
template < typename T >
struct check<test_base<T> > : boost::mpl::true_ {};
struct test_derived : test_base<int> {};
#include <iostream>
int main()
{
std::cout << check<test_derived>::value << std::endl;
std::cin.get();
}
O
true_
yerine
false_
dönmek istiyorum. Gerçek örnek, çoğu varsayılan olarak 7 şablon parametresine sahiptir ve adıyla bunlara başvurmak için Boost.Parameter kullanır.
is_base
'u kullanabilmek için, parametreleri bir şekilde çekebilmem gerekirdi ve iç yazım hatalarını bildirmenin bir yolunu göremiyorum.
Bence bu imkansız. Yanlış olduğu kanıtlanmış olmak.
test tabanı ve devre dışı bırakma içine benzersiz etiket türünü tanıtabilir/o dayalı etkinleştirin? – Anycorn
Bu, kendimi düşünmeliydim uygun bir seçenek. Yine de kimse onsuz bir yol bulabilir eğer hala ilgilenir. –
@aaa - Bunu bir cevap vermelisiniz. Tek bir olası yöntemdir, böylece cevap alamadığımdan birkaç gün sonra bunun için de kredi alabilirsiniz. –