我有代碼,有點類似如下:使用std :: tuple_size ::陣列
#include <array>
class DoubleArray: std::array<double, 16> {
public:
void clear() {
fill(0.0);
}
};
現在我想用std::array
的大小作爲一個編譯時間常數。如果DoubleArray
只是一個typedef
到std::array
我可以用std::tuple_size<DoubleArray>::value
但使用繼承,而不是我得到以下編譯器錯誤:
error: incomplete type ‘std::tuple_size<DoubleArray>’ used in nested name specifier
我見過tuple_size and an inhereted class from tuple?但是,由於有關的std ::元組只會談中,我不認爲這可以應用。任何想法,爲什麼這不起作用,如果有一個簡單的方法,使其工作?
如果你確定它你可以說'的std :: tuple_size <::的doubleArray陣列> :: value' 。 –
@litb完美,謝謝!這實際上比我想象的要容易... – TBieniek
我不明白爲什麼鏈接的問題不適用於此。您可以專門爲您的類型設置tuple_size,但我個人更喜歡Johannes的建議。 –