0
我與模板實驗和我寫了這個簡單的類方法:傳遞動態模板參數
void Decimal::toBinary(size_t bits) {
// decimalNumber being a class private variable (long double)
std::bitset<bits> result(decimalNumber);
std::cout << result << std::endl;
}
我試圖通過size_t bits
功能參數位集模板。
根據C++ Bitset Reference的實現確實需要的size_t參數:
template < size_t N > class bitset;
但是,我越來越
src/decimal.cc:11: error: ‘bits’ cannot appear in a constant-expression
src/decimal.cc:11: error: template argument 1 is invalid
src/decimal.cc:11: error: invalid type in declaration before ‘(’ token
我想我不能做到這一點...任何變通辦法?
根據「decimalNumber」類型的不同,您可能只需要足夠長的'std :: bitset'即可脫身,它將能夠保存所有信息。 – Xymostech
decimalNumber long long – jviotti
您不能「傳遞動態模板參數」。這些需要在編譯時知道。 – juanchopanza