【发布时间】:2010-09-18 21:55:35
【问题描述】:
我在以下代码中收到来自g++ 3.3 的奇怪错误:
#include <bitset>
#include <string>
using namespace std;
template <int N, int M>
bitset<N> slice_bitset(const bitset<M> &original, size_t start) {
string str = original.to_string<char, char_traits<char>, allocator<char> >();
string newstr = str.substr(start, N);
return bitset<N>(newstr);
}
int main() {
bitset<128> test;
bitset<12> result = slice_bitset<12, 128>(test, 0);
return 0;
}
错误如下:
在函数`std::bitset slice_bitset(const std::bitset&, unsigned int)'中: ',' 标记前的语法错误 `char_traits' 指定为 declarator-id `char_traits' 声明中的两个或多个数据类型 `allocator' 指定为 declarator-id `allocator' 声明中的两个或多个数据类型 `>' 标记前的语法错误这一定是非常愚蠢的事情,但我已经告诉我的橡皮鸭和朋友无济于事。
谢谢,懒人网。
【问题讨论】:
-
+1 告诉你的橡皮鸭。