> You might be able to use _Pragma > > #if _OPENMP > #define OMP_PARALLEL _Pragma("omp parallel") > #else > #define OMP_PARALLEL > #endif > > And then use that instead of the #pragma omp directive: > > OMP_PARALLEL > for (int i = 0; i < 10; ++i) > ; Yeah, that crossed my mind. I realized I was attacking the defines from the wrong end. > Again, I haven't actually tested whether this still parallelizes > anything, only that it compiles. It gets even better: benchmarking, I found some of the routines slowed down. Hence the reason for that weird looking tail on the pragma: #pragma omp parallel sections if(CRYPTOPP_RW_USE_OMP) { #pragma omp section m_pre_2_9p = modp.Exponentiate(2, (9 * m_p - 11)/8); #pragma omp section m_pre_2_3q = modq.Exponentiate(2, (3 * m_q - 5)/8); #pragma omp section m_pre_q_p = modp.Exponentiate(m_q, m_p - 2); } (The 'if' clause has been around since OMP 1.0, so its available everywhere). Jeff