Bu does not eser:Neden bu basit program std :: rotate kullanarak derleme değil mi?
#include <algorithm>
int main()
{
int a[] = { 1, 2, 3 };
auto it = std::rotate(std::begin(a), std::begin(a) + 1, std::end(a));
}
alıyorum hatadır:
template<class ForwardIterator>
ForwardIterator rotate(ForwardIterator first, ForwardIterator middle,
ForwardIterator last);
Neden: döndürmek beyanı olduğu gibi
main.cpp:6:10: error: variable has incomplete type 'void'
auto it = std::rotate(std::begin(a), std::begin(a) + 1, std::end(a));
Bu yanlış davranış, açıkça Bu basit program derlenemiyor mu? C++ 11, std::rotate
used to return void
'dan önce
C++ 11'den önce, 'döndür' hiçbir şey döndürmedi. Görünüşe göre standart kütüphane uygulamanız tamamen güncel değil. –
Bu libstdC++ için bir bilinen sorun (https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x) ("döndürme dönüşü geçersiz"). – user657267