時,我有以下模板函數:奇怪的錯誤實例化模板函數
template <std::size_t first, std::size_t last, typename T>
bool in_range(T& in)
{
for(auto i = in.begin(); i!=in.end(); ++i)
if(*i<first || *i>last)
return false;
return true;
}
但是當我嘗試使用它作爲這樣的:
std::vector<int> test;
test.push_back(1);
test.push_back(5);
test.push_back(6);
std::cout<<in_range<4,7>(test);
我得到這個奇怪的錯誤:
main.cpp: In instantiation of 'bool in_range(T&) [with long long unsigned int first = 4ull; long long unsigned int last = 7ull; T = std::vector<int>]':
main.cpp:31:34: required from here
我在做什麼錯了?
編輯:全力打造日誌:http://pastebin.com/Cwemq2Hk
這真的是完整的錯誤信息? – 2012-07-06 15:07:25
這是錯誤消息的一部分,說明發生錯誤的位置。它會被跟隨或之前的錯誤描述 - 你能發佈完整的消息嗎? – 2012-07-06 15:09:21
編譯精美VC2010,在這裏http://ideone.com/yGh30 – hmjd 2012-07-06 15:09:57