kullanarak genel oluşturma using
yönergesini kullanarak, tabanda bildirilen bir iç sınıf şablonunun türetilmiş bir sınıfının public
erişim bildirimini getirmeye çalışıyorum. Kod:Özel bir içsel iç şablon, bir yönerge
template <typename T>
class Base
{
public:
template<typename U>
struct Inner;
};
template<typename T>
class Derived: private Base<T>
{
public:
using typename Base<T>::template Inner; // make it visible
Inner<T>* ptr; // no need for typename here, non-qualified name
};
int main() {}
Ne gr ++ ne de çınlama ++, adını eleme zaman bir ::template
kullanmalıdır böylece hem yaklaşık
error: expected unqualified-id before 'template'
olarak bildiğim kadarıyla, Inner
bağımlı şablon adıdır şikayet, bu kodu derlemek ve ayrıca typename
, daha önce Base<T>::Inner
bağımlı bir türüdür. typename/template
ile/olmadan tüm olası kombinasyonları denedim ve hiçbiri derlemedim. Derived
'un public
bölümünde Inner
'u kullanmanın bir yolu var mı?
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#109 –
@ T.Ç. msgstr "" - "ile yazılabilir"? – Barry
@Barry Bu sorunun orijinal örneğinin bir üye işlev şablonu için olduğunu unutmayın. –