程序调用这两个函数的时侯如何自己区分该调用哪一个?
template< typename T, int AS >const T& Octree<T,AS>::operator() ( int x, int y, int z ) const{ return at(x,y,z);}template< typename T, int AS >T& Octree<T,AS>::operator() ( int x, int y, int z ){ assert( x >= 0 && x < size_ ); assert( y >= 0 && y < size_ ); assert( z >= 0 && z < size_ ); Node** n = &root_; int size = size_; while ( size != aggregateSize_ ) { if (!*n) { *n = new Branch; } else if ( (*n)->type() == BranchNode ) { size /= 2; n = &reinterpret_cast<Branch*>(*n)->child( !!(x & size), !!(y & size), !!(z & size) ); } else { return reinterpret_cast<Leaf*>(*n)->value(); } } if (!*n) { *n = new Aggregate(emptyValue_); } --size; return reinterpret_cast<Aggregate*>(*n)->value( x & size, y & size, z & size );}nodeVal emptyNode(0); Octree<nodeVal> o(64, emptyNode);o(ix,iy,iz) = nodeVal(x,y,z,gx,gy,gz,vx,vy,vz,k1,k2,k3, ix, iy, iz);