Я хочу написать некоторый код для совместимости с различными версиями boost, и вы хотите использовать соответствующие функции для данных форсированных версий. Сейчас я пытаюсь,Макросы препроцессора для разных имен функций
#if BOOST_VERSION>105000
#define boost_sleep boost::this_thread::sleep_for
#define millisectime boost::chrono::milliseconds
#define timed_join try_join_for
#else
#define boost_sleep boost::this_thread::sleep
#define millisectime boost::posix_time::milliseconds
#endif
Который, кажется, компилируется отлично. Я использую его в коде с чем-то вроде:
// Wait for no reason,
boost_sleep(millisectime(1000));
if(!(workerThread->timed_join(millisectime(1000)))){
cout << "Not joined on time" << endl;
workerThread->detach();
}
Есть ли лучший/стандартный способ для этого? любые предложения по улучшению этого?
Как и в стороне: весь код, который вы пишете является стандартным C++ от C++ 11 – AndyG
Да, планируем перейти на C++ 11, но на данный момент я пытаюсь изменить наименьшее количество кода. ..! лол. (Мне все еще нужно повысить количество контейнеров с несколькими индексами) – xcorat