2017-04-24 35 views
2

这是我试过测试C++ - 概念功能的代码。然而,即使在g ++ 6.2.0版本上使用标志-fconcepts后,它似乎也不起作用。 任何帮助它得到它的工作将是伟大的!如何使用g ++ 6.2.0启用概念?

#include <iostream> 
using namespace std; 
#include <list> 
#include <vector> 
#include <algorithm> 
#include <iterator> 
#include <bits/stdc++.h> 
using namespace std::literals; 

template<typename ptr_t > 
requires RandomAccessIterator<ptr_t> 
void mysort(ptr_t first, ptr_t last) 
{ 
    sort(first, last); 
} 
int main() 
{ 
    vector<int> v{22, 11, 55, 33, 44}; 
    list<int> l{22, 11, 55, 33, 44}; 
    mysort(begin(v), end(v)); 
    mysort(begin(l), end(l)); 
} 

这是我如何编译:

g++-6 concepts.cpp -fconcepts 

这是我的错误:

error: ‘RandomAccessIterator’ was not declared in this scope 

我改变了拼写random_access_iterator,但它仍然无法正常工作。

6.2.13节中的文档C++ Working Draft定义了RandomAccessIterator的存在。

+2

您的概念RandomAccessIterator定义在哪里? –

+0

'RandomAccessIterator'不由标准库提供。你需要定义它。 –

+0

我应该如何定义它?什么是确切的签名? –

回答