|
Boost Users : |
Subject: [Boost-users] extraction invariants from intensive-loop based on template parameters
From: Hicham Mouline (hicham_at_[hidden])
Date: 2009-02-19 08:08:34
Hello,
I have an algorithm like:
template <typename Upper, typename Lower>
class X {
static void f()
{
....
for (size_t n=0; n<=N; ++n)
{
// process for j=0 at every n if Lower::IsConstant is false
for (size_t j=1; j<=J-1; ++j)
{
}
// process for j=J at every n if Upper::IsConstant is false
}
....
}
So I extracted the double for loop in a separate wrapper class and
I verbosely wrote 4 specializations with template args begin bool :
<true, true>
<false, true>
<true, false>
<false, false>
for e.g. for <true, true>
// process for j=0 once
for (size_t n=0; n<=N; ++n)
{
for (size_t j=1; j<=J-1; ++j)
{
}
}
// process for j=J once
Any advice?
Is there a better way than writing explicitly the tmpl specializations? Boost.PP maybe?
rds,
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net