好吧,我關於模板的上一個問題的更新(我在這個領域是一個小菜鳥)... 我把我的大部分問題都恢復到: 是否有可能有不同的參數計算一個成員函數,取決於類聲明中使用的模板參數?模板專業化功能參數計數
例如,一個構造函數:
template <typename Type, unsigned ElementCount>
class TVector
{
public:
Type Values[ElementCount];
TVector (ElementCount number of Type here)
{ ...
這可能嗎? 或許二傳手:
SetValues (ElementCount number of Type here);
編輯: 好了,我的錯,我沒有完全解釋。 這個矢量是一個三角矢量,而不是一個元素數組。所以它應該支持2,3或4個值。至於構造函數,我希望能夠做到這樣的事情: TVector xpto(0.0f,0.0f,0.0f,1.0f);至於編譯器,我使用的是gcc,並且不知道是否可以安全地啓用更新的C++標準。它確實抱怨,當我啓用它們。所以,對我來說沒有enable_if :)
謝謝。
你基本上正在['std :: array'](http://en.cppreference.com/w/cpp/container/array)。它是一個聚合類型,所以可以使用聚合初始化。你可以這樣做,或者沒有理由讓你的構造函數不能使用'std :: initializer_list'或其他容器。 –
我的意思是在2D,3D或4D矢量中的矢量。代數。 –
@RhiakathFlanders:你仍然可以爲許多函數委託std :: array,包括這個。只需將它作爲您的唯一數據成員(公共),並且不要自己定義任何構造函數/ etc。這應該足夠了。 – Puppy