The following snippets, I thought that standard output must be the same in the both scope1 and scope2. However, as the results shows there are not. And the result implies that m
in the scope2 inherits some values from the ones in scope1. I think this is strange because m
in scoper1 is supposed to has nothing to do with m
in scope2. Could someone explain why this happens?
#include<iostream>
#include<Eigen/Core>
using namespace Eigen;
int main(){
{
std::cout << "scope1" << std::endl;
MatrixXd m(2, 2);
std::cout << m << std::endl;
m << 1, 2, 3, 4;
std::cout << m << std::endl;
}
{
std::cout << "scope2" << std::endl;
MatrixXd m(2, 2);
std::cout << m << std::endl;
m << 1, 2, 3, 4;
std::cout << m << std::endl;
}
}
output
scope1
0 0
0 0
1 2
3 4
scope2
0 2
3 4
1 2
3 4
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…