Bir şekilde bu "en kısa" programları (temel?) Sorununu beğeniyorum.VS derleyici hatası C2752 ("birden fazla kısmi uzmanlık eşleşmesi"), STL'de
c: VS2008 bazı şablon kodunu test edilirken bu hata (aşağıya bakınız aynı zamanda VS2010 ve VS2012 onaylandı) geldi \ program dosyaları (x86) \ microsoft visual studio 9.0 \ vc \ include \ xmemory (225): hata C2752: 'standart :: _ Ptr_cat_helper < _T1, _T2>': birden fazla kısmi uzmanlık aşağıdaki üç satır sorunu aşağı kaynatın
with [ _T1=const float (**), _T2=const float (**) ]
şablon bağımsız değişken listesi
eşleşen :#include <vector>
typedef float TPoint[3];
std::vector<TPoint const*> points; // error C2752
Şans olmadan - Aşağıdaki o
Not ben yapı _Ptr_cat_helper için ek şablon spezializations sağlayarak xutility düzeltmeye çalıştı tüm Tamam
#include <vector>
#include <list>
typedef float TPoint[3];
// these similar usages of TPoint are all ok:
std::vector<TPoint*> points; // no error
TPoint const* points1[2];
std::list<TPoint const*> points2;
olduğunu. Herhangi bir fikir yanlış giden nedir? Veya const
'u kaybetmeden nasıl çalışırsınız?
Dahili olarak, ayırıcı dtor vektörünün unsurları çağrılacak olup olmadığını belirlemek (ya da hiçbir şey) bazı metaprogramming (_Ptr_cat
) kullanır:
VS önümde yüklemek yok mu, ama GCC ile çalışır. Standart lib'lerinde bir hata bulmuş olabilirsiniz. –
Upgrading VS şu anda mümkün değil: dlls'e (MFC bileşenlerini kullanarak) diğer gruplardan bağlıyız ... Ama yukarıdaki üç satırın VS2010 – coproc
derlemesini derlemediğini duymak harika olurdu, bu yüzden derlemedim, yorum kaldırıldı. :/Vektörün elementinin ne olması gerektiği tamamen açık değil. Const üç elemanların bir dizi için bir işaretçi yüzüyor? – Xeo