Я пытаюсь запустить код C ++, который использует библиотеку Boost

0

Я бы предпочел ничего не скачивать, но если я должен, я могу это сделать. Я просто пытаюсь запустить простую многопоточную программу, используя библиотеку Boost на многих онлайн-компиляторах, но ни один из них даже не распознает

#include <boost/thread.hpp>

а также

using namespace boost::this_thread;

Сам код взят по этой ссылке: https://www.quantnet.com/threads/c-multithreading-in-boost.10028/

Я сделал свой поиск в Интернете и опробовал множество онлайн-компиляторов, но ни один из них не хочет распознавать Boost или связанные с ним библиотеки.

Это код:

#include <iostream>
#include <boost/thread.hpp>

using namespace std;
using namespace boost;
using namespace boost::this_thread;

// Global function called by thread
void GlobalFunction()
{
   for (int i=0; i<10; ++i) {
       cout<< i << "Do something in parallel with main method." << endl;
       boost::this_thread::yield(); // 'yield' discussed in section 18.6
   }
}

int main()
{
    boost::thread t(&GlobalFunction);
    for (int i=0; i<10; i++) {
        cout << i <<"Do something in main method."<<endl;
    }
    return 0;
}
Теги:
boost
compiler-construction

3 ответа

1
Лучший ответ

просто используйте C++ 11 потоков. Идеальный поток отключен видимо, но у меня не было проблем с его запуском на http://www.compileonline.com/ (просто выберите C++ 11, а не C++).

#include <iostream>
#include <thread>
// Global function called by thread
void GlobalFunction()
{
    for (int i = 0; i < 10; ++i)
    {
        std::cout << i << "Do something in parallel with main method." << std::endl;
        std::this_thread::yield(); // 'yield' discussed in section 18.6
    }
}


int main()
{
    std::thread t(&GlobalFunction);

    for (int i = 0; i < 10; i++)
    {
        std::cout << i << "Do something in main method." << std::endl;
    }


    return 0;
}
  • 0
    Является ли «thread» одной из библиотек повышения, добавленных в C ++ 11, поэтому я не вижу слова «повышение» в программе?
  • 0
    @ user2881037 сейчас в стандарте, да. Несколько вещей изменились от реализации Boost, хотя. Как это часто бывает.
Показать ещё 3 комментария
0

Wandbox - это интерактивная C++ среда, содержащая библиотеки BOOST. Он поддерживает современную версию BOOST (в настоящее время 1,67.0)

Примечание: ваш пример кода отлично работает в версиях BOOST до 1,64.0.

0

если вам нужно использовать boost, вам нужно его загрузить... эти заголовки не присутствуют на вашем компьютере.

  • 0
    Здесь есть еще один пользователь, которому удалось заставить его работать по следующей ссылке: ideone.com/Vuueb . Я попробовал этот самый короткий пример, и он выдал ошибку «Нет файла или каталога».
  • 1
    ideone устанавливает буст-версию на свой сервер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню