2016-03-24 27 views
0

sınıf işlevinin dönüş türü olarak kullanın. İkinci şablon parametresinin bir şablon şablonu parametresi olduğu aşağıdaki şablon yapısını oluşturdum. Ben ani bir yapı fonksiyonunun dönüş tipi olarak kullanmak istiyorum. Şablon şablonu parametresini,

template<typename T, template<typename /*T*/, typename /*U*/> typename V> 
struct MyStruct 
{ 
    V myFunction(); 
} 

Ben V dönen denedim ama açıkçası çalışmıyor. Daha sonra V<T, U>'u denedim ancak işe yaramadı. U parametresini MyStruct'un üçüncü şablon parametresi olarak mı bildirmeli yoksa yapmak istediğimi yapmak için başka bir yol var mı?

cevap

1

V argüman listesini kaçırıyorsunuz. Ancak, söylediğin gibi V<T, U> myFunction(); kullanamazsınız. U veya başka bir şey kullanmak isterseniz, onu eklemeniz gerekir. Örneğin:

template<typename T, template<typename /*T*/, typename /*U*/> typename V, typename P> 
struct MyStruct { 
    V<T, P> myFunction(); 
}; 
İlgili konular