aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/ReturnByValue.h
diff options
context:
space:
mode:
authorGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2010-02-18 20:42:38 -0500
committerGravatar Benoit Jacob <jacob.benoit.1@gmail.com>2010-02-18 20:42:38 -0500
commitb73e22905dd1544830b41463576d112c53fc66d9 (patch)
treed5832987f01195981df53d634e379721fed6b29c /Eigen/src/Core/ReturnByValue.h
parent39d9f0275b8c9ef515b04f7b0e51f701edabbcad (diff)
miserable half-working state, commiting to a fork just in case, just to perfect
my day, my hard disk would die. Will write a more detailed commit message once it's working.
Diffstat (limited to 'Eigen/src/Core/ReturnByValue.h')
-rw-r--r--Eigen/src/Core/ReturnByValue.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/Eigen/src/Core/ReturnByValue.h b/Eigen/src/Core/ReturnByValue.h
index 920269365..8d45fc31b 100644
--- a/Eigen/src/Core/ReturnByValue.h
+++ b/Eigen/src/Core/ReturnByValue.h
@@ -34,14 +34,9 @@ struct ei_traits<ReturnByValue<Derived> >
: public ei_traits<typename ei_traits<Derived>::ReturnMatrixType>
{
enum {
- // FIXME had to remove the DirectAccessBit for usage like
- // matrix.inverse().block(...)
- // because the Block ctor with direct access
- // wants to call coeffRef() to get an address, and that fails (infinite recursion) as ReturnByValue
- // doesnt implement coeffRef().
- // The fact that I had to do that shows that when doing xpr.block() with a non-direct-access xpr,
- // even if xpr has the EvalBeforeNestingBit, the block() doesn't use direct access on the evaluated
- // xpr.
+ // We're disabling the DirectAccess because e.g. the constructor of
+ // the Block-with-DirectAccess expression requires to have a coeffRef method.
+ // Also, we don't want to have to implement the stride stuff.
Flags = (ei_traits<typename ei_traits<Derived>::ReturnMatrixType>::Flags
| EvalBeforeNestingBit) & ~DirectAccessBit
};