Во время игры с функциями C ++ 11 Visual Studio 2012 я обнаружил странные ошибки при включении заголовочного файла «ppltasks.h» (который включен через заголовочный файл future):
Main.cpp
1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\ppltasks.h(3306): error C2512: 'Concurrency::details::_PPLTaskHandle<Concurrency::details::_NormalizeVoidToUnitType<void>::_Type,Concurrency::task<std::pair<Concurrency::details::_Unit_type,Concurrency::details::_CancellationTokenState *>>::_ContinuationTaskHandle<_InternalReturnType,_TaskType,_Function,Concurrency::details::_FunctionTypeTraits<_Function,_ReturnType>::_Takes_task,Concurrency::details::_TaskTypeTraits<void,false>::_AsyncKind>,Concurrency::details::_ContinuationTaskHandleBase>' : no appropriate default constructor available
1> with
1> [
1> _InternalReturnType=std::pair<Concurrency::details::_Unit_type,Concurrency::details::_CancellationTokenState *>
1> , _Function=Concurrency::||::<lambda_06496b162c644bf2f90c850c3dfa7d5c>
1> , _ReturnType=std::pair<Concurrency::details::_Unit_type,Concurrency::details::_CancellationTokenState *>
1> ]
Ошибка длиннее, но вы понимаете ее суть. Кто-нибудь еще сталкивался с таким сообщением об ошибке при простом включении заголовка «future», и есть ли известное решение? Благодарю.
Оказывается, в настройках проекта должны быть включены языковые расширения, чтобы заголовок правильно компилировался (на данный момент).
Других решений пока нет …