boost::coroutines::coroutine
과 함께 제공되는 parallel.cpp
예제를 32 비트 및 64 비트 프로그램으로 컴파일했습니다.부스트 코 루틴이 Windows x86_64에서 작동하지 않습니까?
그들은 모두 오류없이 컴파일 및 링크됩니다. 32 비트 프로그램이 실행되고 예상대로 작동하지만 시작시 64 비트 응용 프로그램이 충돌합니다.
Windows 7 64 비트에서 Visual Studio 2012 Express 사용.
편집 : 코 루틴 부스트에 입학하지만 아직 부스트 배포판의 일부로 해제되지되었습니다. 저자의 '최종'버전의 예를 사용했습니다.
편집 :이 코드 부스트 트렁크에서
#include <boost/bind.hpp>
#include <boost/coroutine/all.hpp>
typedef boost::coroutines::coroutine< void() > coroutine_t;
void first(coroutine_t::caller_type & self)
{
std::cout << "started first! ";
for (int i = 0; i < 10; ++i)
{
self();
std::cout << "a" << i;
}
}
void second(coroutine_t::caller_type & self)
{
std::cout << "started second! ";
for (int i = 0; i < 10; ++i)
{
self();
std::cout << "b" << i;
}
}
int main(int argc, char * argv[])
{
{
coroutine_t c1(boost::bind(first, _1));
coroutine_t c2(boost::bind(second, _1));
while (c1 && c2) {
c1();
std::cout << " ";
c2();
std::cout << " ";
}
}
std::cout << "\nDone" << std::endl;
return EXIT_SUCCESS;
}
부스트 버전? –
디버깅을하셨습니까? – Synxis