我想知道如何去使用變量來設置一個位集的大小。例如,使用變量來設置位集的大小
// obtain file size:
fseek (rFile , 0 , SEEK_END);
numberOfBytes = ftell (rFile);
rewind (rFile);
const unsigned long long buffSize = numberOfBytes * 8;
std::bitset<buffSize> buffer;
我收到一條錯誤消息,指出buffSize的值在常量表達式中不可用。我正在尋找一種方法將bitset設置爲我正在閱讀的任何文件的大小。
不能使用變量作爲模板參數,也不能使用非常量變量來初始化常量變量。這是一個殘酷的世界,但你不得不吞下去。 –
如果不告訴它一個常量值,編譯器如何知道如何確定這個東西的大小?一些標準庫容器在編譯後可以任意調整大小,其他的則不可以。仔細閱讀文檔以瞭解其差異。 – tadman
可能你可以用'std :: vector'下車,這是一個糟糕的解決方案。 –