Monday, January 2, 2017

Digest for comp.lang.c++@googlegroups.com - 18 updates in 8 topics

bitrex <bitrex@de.lete.earthlink.net>: Jan 02 03:49AM -0500

The poster "Johannes Goller" here gives an example of some code to
"chunk" a STL container so a different section could be passed to a
different thread of execution for processing, for example.
 
http://stackoverflow.com/questions/14226952/partitioning-batch-chunk-a-container-into-equal-sized-pieces-using-std-algorithm
 
However, he doesn't give any example on how this is accomplished in
practice with say a boost::thread or a std::thread. I've been trying to
pass what's returned by accessing "chunks[0].first, chunks[0].second" as
a parameter into a boost::thread callback just by value and am getting
difficult to interpret errors like:
 
/usr/include/c++/5/functional|1505|error: no type named 'type' in 'class
std::result_of<void
(*(__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>...
 
etc.
Ben Bacarisse <ben.usenet@bsb.me.uk>: Jan 02 11:15AM


> /usr/include/c++/5/functional|1505|error: no type named 'type' in
> 'class std::result_of<void
> (*(__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>...
 
You might get lucky with an answer but you will stand a much better
chance by posting the code here. If possible, prepare a minimal example
that produces the error. Very often simply trying to produce that small
example leads you to the solution yourself.
 
--
Ben.
bitrex <bitrex@de.lete.earthlink.net>: Jan 02 01:39PM -0500

On 01/02/2017 06:15 AM, Ben Bacarisse wrote:
> chance by posting the code here. If possible, prepare a minimal example
> that produces the error. Very often simply trying to produce that small
> example leads you to the solution yourself.
 
Thanks, okay. Consider the following example:
 
#include <vector>
#include <utility>
#include <algorithm>
#include <cstdint>
#include "boost/thread/thread.hpp"
 
template <typename T>
std::vector<std::pair<T, T>> chunk(T range_from, T range_to,
const std::ptrdiff_t num);
 
void process(std::vector<std::string>::iterator first,
std::vector<std::string>::iterator last,
std::vector<std::string>& thread_data);
 
int main() {
using std::vector;
using std::string;
using boost::thread;
 
const size_t container_size = 10;
const size_t num_threads = 2;
 
vector<vector<string>> vec_string(container_size);
 
std::generate_n(std::begin(vec_string), container_size, []() {
vector<string> v{"A", "B", "C", "D"};
return v;
});
 
std::array<thread, num_threads> t;
 
auto chunks =
chunk(std::begin(vec_string), std::end(vec_string), num_threads);
 
for (size_t i = 0; i < num_threads; ++i) {
t[i] = thread(process, chunks[i].first, chunks[i].second,
std::ref(vec_string));
}
 
// Join the threads with the main thread
for (size_t i = 0; i < num_threads; ++i) {
t[i].join();
}
 
return 0;
}
 
void process(std::vector<std::string>::iterator& first,
std::vector<std::string>::iterator& last,
std::vector<std::string>& thread_data) {
// read from the chunks here
}
 
template <typename T>
std::vector<std::pair<T, T>> chunk(T range_from, T range_to,
const std::ptrdiff_t num) {
using std::vector;
using std::pair;
using std::make_pair;
using std::distance;
using diff_t = std::ptrdiff_t;
 
/* Total Tem number and portion input_size. */
const diff_t total{distance(range_from, range_to)};
const diff_t portion{total / num};
 
vector<pair<T, T>> chunks(num);
 
T portion_end{range_from};
 
/* Use the 'generate' algorThm to create portions. */
std::generate(begin(chunks), end(chunks), [&portion_end, portion]() {
T portion_start{portion_end};
 
portion_end += portion;
return make_pair(portion_start, portion_end);
});
 
/* The last portion's end must always be 'range_to'. */
chunks.back().second = range_to;
 
return chunks;
}
 
I believe the "chunk" function should return a vector of pairs, with
"first" containing an iterator to the beginning of a chunk of the vector
"vec_string", and "second" containing an iterator to the end. I try to
pass the two of them into a thread constructor by value so thread 1 can
read from say the first five vectors of strings within the outer vector
"vec_string" and the second can read from the rest. However I get the
following errors on compilation:
 
||=== Build: Debug in ThreadTest (compiler: GNU GCC Compiler) ===|
/usr/include/boost/bind/bind.hpp||In instantiation of 'void
boost::_bi::list3<A1, A2, A3>::operator()(boost::_bi::type<void>, F&,
A&, int) [with F = void (*)(const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&, const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&,
std::vector<std::__cxx11::basic_string<char> >&); A = boost::_bi::list0;
A1 =
boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >;
A2 =
boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >;
A3 =
boost::_bi::value<std::reference_wrapper<std::vector<std::vector<std::__cxx11::basic_string<char>
> > > >]':|
/usr/include/boost/bind/bind.hpp|893|required from
'boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F,
L>::operator()() [with R = void; F = void (*)(const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&, const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&,
std::vector<std::__cxx11::basic_string<char> >&); L =
boost::_bi::list3<boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >,
boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >,
boost::_bi::value<std::reference_wrapper<std::vector<std::vector<std::__cxx11::basic_string<char>
> > > > >; boost::_bi::bind_t<R, F, L>::result_type = void]'|
/usr/include/boost/thread/detail/thread.hpp|116|required from 'void
boost::detail::thread_data<F>::run() [with F = boost::_bi::bind_t<void,
void (*)(const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&, const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&,
std::vector<std::__cxx11::basic_string<char> >&),
boost::_bi::list3<boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >,
boost::_bi::value<std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > > >,
boost::_bi::value<std::reference_wrapper<std::vector<std::vector<std::__cxx11::basic_string<char>
> > > > > >]'|
/home/matt/Documents/C++/ThreadTest/main.cpp|98|required from here|
/usr/include/boost/bind/bind.hpp|392|error: invalid initialization of
reference of type 'const
__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*,
std::vector<std::__cxx11::basic_string<char> > >&' from expression of
type
'std::reference_wrapper<__gnu_cxx::__normal_iterator<std::vector<std::__cxx11::basic_string<char>
>*, std::vector<std::vector<std::__cxx11::basic_string<char> > > > >'|
||=== Build failed: 1 error(s), 4 warning(s) (0 minute(s), 5 second(s)) ===|
bitrex <bitrex@de.lete.earthlink.net>: Jan 02 01:40PM -0500

On 01/02/2017 01:39 PM, bitrex wrote:
 
> std::vector<std::string>& thread_data) {
> // read from the chunks here
> }
 
Sorry, these should not be references.
Paavo Helde <myfirstname@osa.pri.ee>: Jan 02 10:20PM +0200

On 2.01.2017 20:39, bitrex wrote:
 
> Thanks, okay. Consider the following example:
 
It looks like you are mixing up vector<string> and
vector<vector<string>> in several places. You have to make up your mind
what you want to use where.
 
This code could also benefit from a couple of typedefs (or their newer
incarnation via 'using'). Inconsistent usage of std:: prefix does not
help either.
 
 
 
> void process(std::vector<std::string>::iterator first,
> std::vector<std::string>::iterator last,
> std::vector<std::string>& thread_data);
 
In process() you expect vector<string>::iterator and vector<string>.
 
 
 
> std::array<thread, num_threads> t;
 
> auto chunks =
> chunk(std::begin(vec_string), std::end(vec_string), num_threads);
 
Here you pass in vector<vector<string>>::iterators and consequently
these are the iterators stored in chunks.
 
 
> t[i] = thread(process, chunks[i].first, chunks[i].second,
> std::ref(vec_string));
> }
 
Thus, here you pass vector<vector<string>>::iterator instead of expected
vector<string>::iterator, and a vector<vector<string>> instead of a
vector<string>.
bitrex <bitrex@de.lete.earthlink.net>: Jan 02 05:55PM -0500

On 01/02/2017 03:20 PM, Paavo Helde wrote:
 
> Thus, here you pass vector<vector<string>>::iterator instead of expected
> vector<string>::iterator, and a vector<vector<string>> instead of a
> vector<string>.
 
I see, thank you - yes I should be passing an iterator to the proper
thing, I suppose...;-)
 
The desired functionality is to subdivide the outer std::vector into n
blocks of the inner std::vector<std::string> and pass each block of the
latter to the "process" function.
"Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com>: Jan 02 06:59AM +0100

On 31.12.2016 22:12, Tim Rentsch wrote:
> changed your normal style for tutorial reasons, and it's really
> tangential to the main discussion anyway, but I thought it might
> be good to mention it.
 
Oh.
 
You probably have some good points even though it seems clear that you
have more of a C background than C++, and I'd love to hear them.
 
Re background hypothesis: I noticed things like using `struct` for
`namespace`.
 
Re probably good points anyway: so far all you've written has been spot
on. And I remember in the old days, I heard from people in HR that the
partners in Accenture Norway took a dim view towards criticism that
wasn't accompanied by solutions. But I reasoned that when one spots a
proposal for square car wheels, flying through the approval process,
then one has an obligation to point it out even if one doesn't have the
slightest competence at all in wheels design, just common sense and
maybe a heck of a lot of experience in driving various vehicles.
 
 
>[snip]
 
Thanks for the discussion of rebalancing (snipped). I'll probably have
to study this. :)
 
The various ways to do height information updating are also interesting.
 
Except I think that the originally posted code with a stack of parent
pointers, which worked its way up (instead of down) the tree, may be far
more suitable for doing balancing at the lowest possible level -- at
least until threading is in place?
 
 
Cheers!,
 
- Alf
Tim Rentsch <txr@alumni.caltech.edu>: Jan 02 03:59AM -0800


> Oh.
 
> You probably have some good points even though it seems clear that you
> have more of a C background than C++, and I'd love to hear them.
 
It's true that I am more familiar with C than with some of the
recent additions to C++, but for the most part I think what I
would say should be equally applicable to both.
 
> Re background hypothesis: I noticed things like using `struct` for
> namespace`.
 
(I guessed that winapi was a namespace rather than a struct but
since I was just throwing it together I took the path of least
resistance...)
 
> Re probably good points anyway: so far all you've written has been
> spot on.
 
Thank you, that's always nice to hear.
 
> And I remember in the old days, I heard from people in HR
> that the partners in Accenture Norway took a dim view towards
> criticism that wasn't accompanied by solutions.
 
I deliberately didn't give any details because I thought it
was off the main line. But since you're interested certainly there
will be some constructive suggestions as part of the comments.
Let me do that in a second followup....
 
> pointers, which worked its way up (instead of down) the tree, may be
> far more suitable for doing balancing at the lowest possible level --
> at least until threading is in place?
 
It is a remarkable result for AVL trees that, after an insertion,
at most one rebalancing operation needs to take place, and where
that is in the tree can be precisely identified during the walk
along the path from the root to the insertion point. Nodes
downstream of that point will need their balance factors
adjusted, but the only place where nodes may need to be moved
around is at the one place identified during the initial walk.
 
When we get to threading, we will find that for the most part
threading takes care of itself, except in a few cases where nodes
with thread links are directly moved as part of a rebalancing
operation. So there again we don't need to worry about any
downstream nodes, just those near the "tipping point" node as
I have been calling it.
Tim Rentsch <txr@alumni.caltech.edu>: Jan 02 12:04PM -0800

>> tangential to the main discussion anyway, but I thought it might
>> be good to mention it.
 
> You probably have some good points [...]
 
Okay I promised a followup, here we go. A few preliminaries
before we get started. First the code I am posting has been
compiled but it has not been tested. (Yes, lazy me. Also minor
errors may have been introduced during editing, but the code did
compile when I started.) Second there are some minor changes
with horizontal white space but I hope you will disregard those,
that isn't what I was reacting to. Third I am used to K&R
bracing style (and find BSD style almost painful to try to read),
and I use a K&R-ish style in what follows but that also is not
what I was reacting to, so I hope that won't be too distracting.
 
To begin, here is my starting point - your code adjusted for
bracing style (and some accidental line wraps?) but otherwise as
originally posted. (There may also be some other whitespace
changes introduced without my meaning to do so.) Oh, I also
switched the order of the two functions.
 
void
add( Value const& value ){
Node** p_ptr = &root_;
Node* lowest_newheight_absorber = nullptr;
while( *p_ptr != nullptr ){
Node*& ref_ptr = *p_ptr;
bool const go_left = (value < ref_ptr->value);
bool const go_right = not go_left;
bool const right_is_higher = (ref_ptr->height_diff > 0);
bool const left_is_higher = (ref_ptr->height_diff < 0);
 
if( go_left and right_is_higher or go_right and left_is_higher ){
lowest_newheight_absorber = ref_ptr;
}
 
p_ptr = &(go_left? ref_ptr->left : ref_ptr->right);
}
 
*p_ptr = new Node{ nullptr, nullptr, value, 0 };
update_height_differences_down_from(
lowest_newheight_absorber? lowest_newheight_absorber : root_,
value
);
}
 
static void
update_height_differences_down_from(
Node* const highest_node_with_change,
Value const& new_value
){
Node* node = highest_node_with_change;
while( node ){
bool const go_left = (new_value < node->value);
bool const is_leaf_node = not(node->left or node->right);
if( not is_leaf_node ){
node->height_diff += (go_left? -1 : +1);
}
node = (go_left? node->left : node->right);
}
}
 
My reaction is more of a gestalt than any particular item or
items. I just have a gut reaction that there is more code here
to read than the problem needs. So, rather than trying to
identify weaknesses, let me take a different tack and just write
code more along the lines of how I would naturally write it. We
are going to end up looking at several different versions, so if
it starts off a little rough please bear with me.
 
First cut:
 
void
add( Value const& value ){
typedef Node *Tree;
Tree p = root_, q, *qd = &root_;
 
while( *qd ){
q = *qd;
if( value == q->value ) return;
qd = value > q->value ? &q->right : &q->left;
int d = q->height_diff;
if( qd == &q->right ? d < 0 : d > 0 ) p = q;
}
*qd = new Node{ 0, 0, value, 0 };
 
if( p ) do {
p->height_diff += value > p->value ? 1 : -1;
p = value > p->value ? p->right : p->left;
} while( p->value != value );
}
 
This function does both the inserting and updating the height
information. Inside the first loop is a conditional return that
causes duplicate values to be ignored.
 
This code isn't very pretty. I can follow what it's doing but it
still is not as clean as I would like. As part of rewriting it,
two minor changes occur to me for the 'Node' type: one, have a
constructor that takes a value; and two, rename 'height_diff' to
'balance'. Also we can choose a more conventional expression for
the conditional while() loop at the end, albeit with a minor loss
of efficiency. Here is a second cut:
 
void
add( Value const& value ){
Node *p = root_, **qp = &root_, *q;
 
while( q = *qp ){
if( value == q->value ) return;
 
qp = value < q->value ? &q->left : &q->right;
if( qp == &q->left ? q->balance > 0 : q->balance < 0 ) p = q;
}
q = *qp = new Node{ value };
 
while( p && p != q ){
p->balance += value < p->value ? -1 : 1;
p = value < p->value ? p->left : p->right;
}
}
 
This is better, but still not not as clean as it could be. (Btw
I noticed the spacing convention you use for ?: and decided to
try it in this code.) The biggest offender is that complicated
if() in the first while() loop. How about if we push that
condition off to a subfunction? Third cut:
 
void
add( Value const& value ){
Node *p = root_, **qp = &root_, *q;
 
while( q = *qp ){
if( value == q->value ) return;
 
qp = value < q->value ? &q->left : &q->right;
if( q->height_would_not_increase_for( value ) ) p = q;
}
q = *qp = new Node{ value };
 
while( p && p != q ){
p->balance += value < p->value ? -1 : 1;
p = value < p->value ? p->left : p->right;
}
}
 
That is definitely better. Now we can see what's going on
without getting caught up in the details of the test.
 
At this point we might be content to stop, but let's try pushing
forward. The while() loop that walks the tree looks like it
could be made into a for() loop instead. Also maybe 'key' is a
nicer choice than 'value' for the parameter and Node data member.
A fairly mechanical change gives a fourth cut:
 
void
add( Value const& key ){
Node *p = root_, **q, *r;
 
for( q = &root_; r = *q; q = key < r->key ? &r->left : &r->right ){
if( key == r->key ) return;
 
if( r->height_would_not_increase_for( value ) ) p = r;
}
r = *q = new Node{ value };
 
while( p && p != r ){
p->balance += key < p->key ? -1 : 1;
p = key < p->key ? p->left : p->right;
}
}
 
That makes the loop body better, at the cost of a too-long for()
line. Our fix again is to push the calculation into a Node
sub-function. We make a similar change to the second while()
loop, and move the test for 'p' being null up before the loop
with a conditional return. Fifth cut:
 
void
add( Value const& key ){
Node *p = root_, **q, *r;
 
for( q = &root_; r = *q; q = r->downlink_address( key ) ){
if( key == r->key ) return;
 
if( r->height_would_not_increase_for( key ) ) p = r;
}
r = *q = new Node{ value };
if( !p ) return;
 
for( ; p != r; p = *p->downlink_address( key ) ){
p->balance += key < p->key ? -1 : 1;
}
}
 
That conditional return near the end is just ugly. We can fix
that by using the initialization portion of the for() loop.
Sixth cut:
 
void
add( Value const& key ){
Node *p = root_, **q, *r;
 
for( q = &root_; r = *q; q = r->downlink_address( key ) ){
if( key == r->key ) return;
 
if( r->height_would_not_increase_for( key ) ) p = r;
}
r = *q = new Node{ value };
 
for( p = p? p:r; p != r; p = *p->downlink_address( key ) ){
p->balance += key < p->key ? -1 : 1;
}
}
 
Okay, this one isn't too bad! One more change suggests itself -
make the balance update line into a Node subfunction. That gives
our seventh and final cut:
 
void
add( Value const& key ){
Node *p = root_, **q, *r;
 
for( q = &root_; r = *q; q = r->downlink_address( key ) ){
if( key == r->key ) return;
 
if( r->height_would_not_increase_for( key ) ) p = r;
}
r = *q = new Node{ value };
 
for( p = p? p:r; p != r; p = *p->downlink_address( key ) ){
p->adjust_balance_after_inserting( key );
}
}
 
I know this has been a long journey to get to a rather modest
result. Hopefully though it shows some of my thought processes
as well as explaining my earlier comment with the nebulous phrase
"composition style".
 
How did I do? :)
Jorgen Grahn <grahn+nntp@snipabacken.se>: Jan 02 05:03PM

On Sat, 2016-12-31, Momo N wrote:
 
> so does the const entitle every object after its created? does this
> read "ci is a const int" and "cj is a reference to a const int" as
> well? or is &cj not a const and just means "a reference to ci"?
 
Note that very few people write code like that. I associate it with C
code written in the 1980s; it's less common in contemporary C code,
and AFAICT much less common in C++.
 
Your question is valid, but it's not an important one. I may be
wrong, but I get the impression that you should focus on other
things. If you need an answer, the easiest way to get it is to write
an example program and see if it compiles -- you can trust your
compiler in this case.
 
/Jorgen
 
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
markrainsun7@gmail.com: Jan 02 06:30AM -0800

Titles in Mechanics, Physics, Electronics, Electromagnetism, light, Optics, Materials Science and Civil Engineering, Thermal and Fluids Mechanics, Mathematics, Advanced Engineering Mathematics, Discrete and Combinatorial Mathematics, Accounting Information Systems, Chemistry, General Chemistry, Physical Chemistry, Organic Chemistry..etc
Any Instructor Solutions Manual is available now in PDF version. You can get any if you can submit email. However, it is not free service
 
Contact: markrainsun"@"gmail.com ( @ without quotes " " )
 
 
SOLUTIONS MANUAL A Brief Introduction To Fluid Mechanics, 5th Edition by Donald F. Young, Bruce R. Munson, Theodore H. Okiishi and Wade W. Huebsch
SOLUTIONS MANUAL A Course in Modern Mathematical Physics by Peter Szekeres
SOLUTIONS MANUAL A Course in Ordinary Differential Equations by Swift, Wirkus
SOLUTIONS MANUAL A First Course in Abstract Algebra 7th Ed.by John B. Fraleigh
SOLUTIONS MANUAL A First Course in Differential Equations - The Classic Fifth Edition by Zill, Dennis G
SOLUTIONS MANUAL A First Course in Differential Equations, 9th Ed by Dennis G. Zill
SOLUTIONS MANUAL A First Course In Probability 7th Edition by Sheldon M. Ross
SOLUTIONS MANUAL A First Course in Probability Theory, 6th edition, by S. Ross.
SOLUTIONS MANUAL A First Course in String Theory, 2004, by Barton Zwiebach
SOLUTIONS MANUAL A First Course in the Finite Element Method, 4th Edition logan
SOLUTIONS MANUAL A First Course in the Finite Element Method, 5th Edition by logan
SOLUTIONS MANUAL A Practical Introduction to Data Structures and Algorithm Analysis 2Ed by Shaffer
SOLUTIONS MANUAL A Quantum Approach to Condensed Matter Physics by Philip L. Taylor & Olle Heinonen
SOLUTIONS MANUAL A Short Course in General Relativity 2e by J. Foster and J. D. Nightingale
SOLUTIONS MANUAL A Short Introduction to Quantum Information and Quantum Computation by Michel Le Bellac
SOLUTIONS MANUAL A Transition to Advanced Mathematics 5th E by Smith, Eggen, Andre
SOLUTIONS MANUAL Accounting Information Systems 12th Edition by Romney, Steinbart
SOLUTIONS MANUAL Accounting Principles 8e by Kieso, Kimmel
SOLUTIONS MANUAL Accounting principles 8th Ed by Weygandt
SOLUTIONS MANUAL Accounting, 23 Ed by Carl S. Warren, James M. Reeve, Jonathan Duchac
SOLUTIONS MANUAL Accounting, 25th Ed by Warren
SOLUTIONS MANUAL Accounting,8th Ed by Horngren,Harrison, Oliver
SOLUTIONS MANUAL Actuarial Mathematics for Life Contingent Risks by Dickson, Hardy and Waters
SOLUTIONS MANUAL Adaptive Control, 2nd. Ed., by Astrom, Wittenmark
SOLUTIONS MANUAL Adaptive Filter Theory 4th Ed.by Simon Haykin
SOLUTIONS MANUAL Advanced Accounting 10E international ED by Beams , Clement, Anthony, Lowensohn
SOLUTIONS MANUAL Advanced Accounting 10th ED by Fischer, Cheng, Taylor
SOLUTIONS MANUAL Advanced accounting 9th Ed by Hoyle, Schaefer
SOLUTIONS MANUAL Advanced Accounting Vol 2 ( 2006 ) by Baysa, Lupisan
SOLUTIONS MANUAL Advanced Calculus by Gerald B. Folland
SOLUTIONS MANUAL Advanced Digital Design with the Verilog HDL by Michael D. Ciletti
SOLUTIONS MANUAL Advanced Dynamics by Greenwood
SOLUTIONS MANUAL Advanced Engineering Electromagnetics by Constantine A. Balanis
SOLUTIONS MANUAL Advanced Engineering Electromagnetics, 2nd Edition by Constantine A. Balanis
SOLUTIONS MANUAL Advanced Engineering Mathematics 2nd Edition by Michael D. Greenberg
SOLUTIONS MANUAL Advanced Engineering Mathematics 3rd ed zill
SOLUTIONS MANUAL Advanced Engineering Mathematics 5th Edition by Zill
SOLUTIONS MANUAL Advanced Engineering Mathematics 8Ed Erwin Kreyszig
SOLUTIONS MANUAL Advanced Engineering Mathematics by Erwin Kreyszig, 9th ed
SOLUTIONS MANUAL Advanced Engineering Mathematics, 10th Edition by Erwin Kreyszig
SOLUTIONS MANUAL Advanced Engineering Mathematics, 6th Edition by Peter V. O'Neil
SOLUTIONS MANUAL Advanced Engineering Mathematics, 7th Ed by Peter V. O'Neil
SOLUTIONS MANUAL Advanced Engineering Mathematics,2E, by Zill, Cullen
SOLUTIONS MANUAL Advanced Engineering Thermodynamics, 3rd Edition by Adrian Bejan
SOLUTIONS MANUAL Advanced Financial Accounting by Baker
SOLUTIONS MANUAL Advanced Financial Accounting 5 Ed by Baker
SOLUTIONS MANUAL Advanced Financial Accounting 8 Ed by Baker
SOLUTIONS MANUAL Advanced Functions & Introductory Calculus by Kirkpatrick, McLeish, Montesanto
SOLUTIONS MANUAL Advanced Industrial Economics by Martin
SOLUTIONS MANUAL Advanced Industrial Economics, 2nd ED Stephen Martin
SOLUTIONS MANUAL Advanced Macroeconomics 2nd edition by David Romer
SOLUTIONS MANUAL Advanced Macroeconomics, by David Romer
SOLUTIONS MANUAL Advanced Mathematical Concepts Precalculus with Applications ( Glencoe )
SOLUTIONS MANUAL Advanced Mechanics of Materials 6th ed by Boresi, Schmidt
SOLUTIONS MANUAL Advanced Modern Engineering Mathematics 3rd Ed Glyn James
SOLUTIONS MANUAL Advanced Modern Engineering Mathematics 4th Ed Glyn James
SOLUTIONS MANUAL Advanced Modern Engineering Mathematics, 3rd Ed., by G. James
SOLUTIONS MANUAL Advanced Organic Chemistry Part A- Structure and Mechanisms 5th E by Carey, Sundberg
SOLUTIONS MANUAL Aircraft Structures for Engineering Students 4th Ed.by T.H.G. Megson
SOLUTIONS MANUAL Algebra & Trigonometry and Precalculus, 3rd Ed by Beecher, Penna, Bittinger
SOLUTIONS MANUAL Algebra and Trigonometry 4th Ed by Robert F. Blitzer
SOLUTIONS MANUAL Algebra Baldor
SOLUTIONS MANUAL Algebra-by Thomas W. Hungerford
SOLUTIONS MANUAL An Interactive Introduction to Mathematical Analysis 2nd E by Jonathan Lewin
SOLUTIONS MANUAL An Introduction To Analysis (3rdEd) -by William Wade
SOLUTIONS MANUAL An Introduction To Analysis 4th Ed by William Wade
SOLUTIONS MANUAL An Introduction to Analysis of Financial Data with R by Ruey S. Tsay
SOLUTIONS MANUAL An Introduction to Database Systems 8th Ed.by C.J. Date
SOLUTIONS MANUAL An Introduction to Derivatives and Risk Management by chance, brooks
SOLUTIONS MANUAL An Introduction to Economic Dynamics by Ronald Shone
SOLUTIONS MANUAL An Introduction To Management Science Quantitative Approaches To Decision Making 12th Ed by Anderson, Sweeney
SOLUTIONS MANUAL An Introduction to Modern Astrophysics 2nd Ed.by Bradley W. Carroll & Dale A. Ostlie
SOLUTIONS MANUAL An Introduction to Numerical Analysis by Endre Süli,David F. Mayers
SOLUTIONS MANUAL An Introduction to Numerical Methods and Analysis, 2nd Ed by James F. Epperson
SOLUTIONS MANUAL An Introduction to Ordinary Differential Equations by James C. Robinson
SOLUTIONS MANUAL An Introduction to Signals and Systems by John Stuller
SOLUTIONS MANUAL An Introduction to Stochastic Modeling 3rd Ed by Taylor, Karlin
SOLUTIONS MANUAL An Introduction to the Finite Element Method 3rd Ed.by J. N. Reddy
SOLUTIONS MANUAL An Introduction To The Mathematics Of Financial Derivatives 2nd E by Mitch Warachka, Hogan, Neftci
SOLUTIONS MANUAL An Introduction to Thermal Physics by Schroeder, Daniel V
SOLUTIONS MANUAL An Introduction to Thermodynamics and Statistical Mechanics (2nd Ed, Keith Stowe)
SOLUTIONS MANUAL An Introduction to Wavelets through Linear Algebra by Frazier
SOLUTIONS MANUAL Analog Integrated Circuit Design, by Johns, Martin
SOLUTIONS MANUAL Analysis and Design of Analog Integrated Circuits (4th Edition) by Gray , Lewis , Meyer
SOLUTIONS MANUAL Analysis and Design of Analog Integrated Circuits 5th Ed ( vol.1 ) ch1-4 by Gray, Meyer
SOLUTIONS MANUAL Analysis of Financial Time Series, 3rd Ed by Ruey S. Tsay
SOLUTIONS MANUAL Analysis of Transport Phenomena, by W. Deen
SOLUTIONS MANUAL Analysis With an Introduction to Proof 4th Ed by Steven R. Lay
SOLUTIONS MANUAL Analysis, Synthesis,and Design of Chemical Processes 3rd ED by Turton, Shaeiwitz
SOLUTIONS MANUAL Analytical Chemistry, by Higson
SOLUTIONS MANUAL Analytical Mechanics 7E by Grant R. Fowles, George L. Cassiday
SOLUTIONS MANUAL Antenna Theory 2nd edition by Balanis
SOLUTIONS MANUAL Antenna Theory and Design, 2nd Ed Vol.1 by Stutzman, Thiele
SOLUTIONS MANUAL Antennas for All Applications 3rd Ed., by John Kraus & Ronald Marhefka
SOLUTIONS MANUAL Applied Analyses in Geotechnics by Fethi Azizi
SOLUTIONS MANUAL Applied Calculus by Hallett,Gleason, Lock, Flath
SOLUTIONS MANUAL Applied Calculus for the Managerial, Life, and Social Sciences, 7 E, by Soo T. Tan
SOLUTIONS MANUAL Applied Calculus for the Managerial, Life, and Social Sciences, 8 E, by Soo T. Tan
SOLUTIONS MANUAL Applied Econometric Time Series, 2nd Edition by Enders
SOLUTIONS MANUAL Applied Econometric Times Series, 3rd Edition by Walter Enders
SOLUTIONS MANUAL Applied Electromagnetism 2nd Ed by Shen, Huang
SOLUTIONS MANUAL Applied Finite Element Analysis 2ed, by LJ SEGERLIND
SOLUTIONS MANUAL Applied Fluid Mechanics 6th Ed., by Mott
SOLUTIONS MANUAL Applied Linear Algebra by Olver, Shakiban
SOLUTIONS MANUAL Applied Linear Regression 3rd Ed by Sanford Weisberg
SOLUTIONS MANUAL Applied Linear Statistical Models 5th Ed by Kutner, Nachtsheim
SOLUTIONS MANUAL Applied Mathematics, 3rd Ed by J. David Logan
SOLUTIONS MANUAL Applied Numerical Analysis, 7th Edition, by Gerald, Wheatley
SOLUTIONS MANUAL Applied Numerical Methods with MATLAB for Engineers and Scientists 2nd E by Chapra
SOLUTIONS MANUAL Applied Numerical Methods with MATLAB for Engineers and Scientists( Steven C. Chapra)
SOLUTIONS MANUAL Applied Partial Differential Equations 4th Ed., by Haberman
SOLUTIONS MANUAL Applied Partial Differential Equations by J. David Logan
SOLUTIONS MANUAL Applied Quantum Mechanics by A. F. J. Levi
SOLUTIONS MANUAL Applied Statistics and Probability for Engineers ( 2nd Ed., Douglas Montgomery & George Runger )
SOLUTIONS MANUAL Applied Statistics and Probability for Engineers (3rd Ed., Douglas Montgomery & George Runger)
SOLUTIONS MANUAL Applied Statistics and Probability for Engineers 6th Ed by Montgomery, Runger
SOLUTIONS MANUAL Applied Strength of Materials (4th Ed., Mott)
SOLUTIONS MANUAL Applied Strength of Materials 5th Ed., by Mott
SOLUTIONS MANUAL Applying Maths in the Chemical and Biomolecular Sciences, by Beddard
SOLUTIONS MANUAL Artificial Intelligence A Modern Approach 2e by Russell, Norvig
SOLUTIONS MANUAL Artificial Neural Networks by B. Yegnanarayana and S. Ramesh
SOLUTIONS MANUAL Assembly Language for Intel-Based Computers ( 3rd Edition ) by Kip R. Irvine
SOLUTIONS MANUAL Atkins' Inorganic Chemistry 6th ED by Alen Hadzovic
SOLUTIONS MANUAL Auditing and Assurance Services- An Integrated Approach 12E by Arens
SOLUTIONS MANUAL Auditing and Assurance Services, 12th edition, Alvin A Arens, Randal J Elder, Mark Beasley
SOLUTIONS MANUAL Auditing and Assurance Services, 13 ed by Arens, Elder, Beasley
SOLUTIONS MANUAL Auditing and Assurance Services, 2nd Ed by Louwers
SOLUTIONS MANUAL Automatic Control Systems 9 Ed by Kuo, Golnaraghi
SOLUTIONS MANUAL Automatic Control Systems, 8E, by Kuo, Golnaraghi
SOLUTIONS MANUAL Automation, Production Systems, and Computer Integrated Manufacturing 3rd ED by Mikell P. Groover
SOLUTIONS MANUAL Basic Econometrics 4 ed by Damodar N. Gujarati
SOLUTIONS MANUAL Basic Electrical Engineering by Nagrath, D P Kothari
SOLUTIONS MANUAL Basic Electromagnetics with Applications by Nannapaneni Narayana Rao
SOLUTIONS MANUAL Basic Engineering Circuit Analysis, 7th Ed by David Irwin
SOLUTIONS MANUAL Basic Engineering Circuit Analysis, 8th Edition by J. David Irwin, R. Mark Nelms
SOLUTIONS MANUAL Basic Engineering Circuit Analysis, 9th Ed by Irwin, Nelms
SOLUTIONS MANUAL Basic Engineering Mathematics by Chan, Hung
SOLUTIONS MANUAL Basic Heat and Mass Transfer by A. F. Mills
SOLUTIONS MANUAL Basic Principles and Calculations in Chemical Engineering 7th E by Himmelblau, Riggs
SOLUTIONS MANUAL Basic Probability Theory by Robert B. Ash
SOLUTIONS MANUAL Beginning Partial Differential Equations 3rd ED by Peter V. O'Neil
SOLUTIONS MANUAL Biochemistry 5th ED by H. Garrett, M. Grisham
SOLUTIONS MANUAL Bioprocess Engineering Principles by Pauline M. Doran
SOLUTIONS MANUAL Business And Transfer Taxation 3rd E by Valencia Roxas
SOLUTIONS MANUAL Business Statistics - Decision Making 7th E by David F. Groebner
SOLUTIONS MANUAL Business Statistics in Practice 7th ED by Bowerman, O'connell, Murphree
SOLUTIONS MANUAL C How to Program, 4th Ed by Deitel & Deitel
SOLUTIONS MANUAL C++ for Computer Science and Engineering 3rd ED by Vic Broquard
SOLUTIONS MANUAL C++ for Computer Science and Engineering by Vic Broquard
SOLUTIONS MANUAL C++ How to Program 3rd edition - Deitel
SOLUTIONS MANUAL C++ How to Program 7th Ed by Deitel
SOLUTIONS MANUAL Calculus 8th Edition by Varberg, Purcell, Rigdon
SOLUTIONS MANUAL Calculus - Early Transcendental Functions 3rd ED by Larson, Ron
SOLUTIONS MANUAL Calculus - Early Transcendentals, 6th E, by Anton, Bivens, Davis
SOLUTIONS MANUAL Calculus - Early Transcendentals, 7E, by Anton, Bivens, Davis
SOLUTIONS MANUAL Calculus - Late Transcendentals Single Variable, 8th Ed by Anton, Bivens, Davis
SOLUTIONS MANUAL Calculus 10th Ed by Larson,Edwards
SOLUTIONS MANUAL Calculus 2nd edition-M. Spivak
SOLUTIONS MANUAL Calculus 3rd Ed by Michael Spivak
SOLUTIONS MANUAL Calculus 6th ed by James Stewart
SOLUTIONS MANUAL Calculus 8th Ed by Ron Larson, Robert P. Hostetler, Bruce H. Edwards
SOLUTIONS MANUAL Calculus 9th Ed., by Dale Varberg, Edwin Purcell & Steve Rigdon
SOLUTIONS MANUAL Calculus A Complete Course 6th Edition by by R.A. Adams
SOLUTIONS MANUAL Calculus A Complete Course 8th Edition by by R.A. Adams, Essex
SOLUTIONS MANUAL CALCULUS An Intuitive and Physical Approach 2nd ed by Morris Kline
SOLUTIONS MANUAL Calculus and its Applications 11th Ed., by Larry J Goldstein, Schneider, Lay & Asmar
SOLUTIONS MANUAL Calculus by Gilbert Strang
SOLUTIONS MANUAL Calculus Early Transcendental Functions 4th Edition by Smith, Minton
SOLUTIONS MANUAL Calculus Early Transcendental Functions 6th Edition by Larson, Edwards
SOLUTIONS MANUAL Calculus early transcendentals 8th Ed, by Anton Bivens Davis
SOLUTIONS MANUAL Calculus early transcendentals 10th Ed, by Anton Bivens Davis
SOLUTIONS MANUAL Calculus Early Transcendentals 6th Ed by Edwards, Penney
SOLUTIONS MANUAL Calculus Early Transcendentals by Sullivan, Miranda
SOLUTIONS MANUAL Calculus Early Transcendentals, 5th Edition, JAMES STEWART
SOLUTIONS MANUAL Calculus George Thomas 10th ed Vol 1
SOLUTIONS MANUAL Calculus of Variations MA 4311 LECTURE NOTES ( Russak )
SOLUTIONS MANUAL Calculus On Manifolds by Spivak
SOLUTIONS MANUAL Calculus One & Several Variables 8e by S Salas
SOLUTIONS MANUAL Calculus One And Several Variables 10th Edition by S Salas
SOLUTIONS MANUAL Calculus Vol 2 by Apostol
SOLUTIONS MANUAL Calculus Volume 1 by J. Marsden, A. Weinstein
SOLUTIONS MANUAL Calculus With Analytic Geometry 4th ( Henry Edwards & David E. Penney)
SOLUTIONS MANUAL Calculus with Applications 10th Ed by Lial, Greenwell, Ritchey
SOLUTIONS MANUAL Calculus with Applications 8 Edition by Lial, Greenwell, Ritchey
SOLUTIONS MANUAL Calculus, 4th edition stewart
SOLUTIONS MANUAL Calculus, Early Transcendentals 7 Ed by Edwards & Penny
SOLUTIONS MANUAL Calculus, Single and Multivariable, 4E.,Vol 1& Vol 2 by Hughes-Hallett,McCallum
SOLUTIONS MANUAL Calculus, Single and Multivariable, 6th Edition Vol 1& Vol 2 by Hughes-Hallett, McCallum
SOLUTIONS MANUAL Calculus, Single and Multivariable, by Blank, Krantz
SOLUTIONS MANUAL Calculus, Single Variable, 3E by Hughes-Hallett,McCallum
SOLUTIONS MANUAL Calculus, Single Variable, Multivariable, 2nd Edition by Blank & Krantz
SOLUTIONS MANUAL Chemical and Engineering Thermodynamics 3Ed by Stanley I. Sandler
SOLUTIONS MANUAL Chemical Engineering Design (Coulson & Richardson's Chemical Engineering - Volume 6) - (4th Ed., Sinnott)
SOLUTIONS MANUAL Chemical Engineering Volume 1, 6th Edition, by Richardson, Coulson,Backhurst, Harker
SOLUTIONS MANUAL Chemical Principles 6th Ed by Steven S. Zumdahl
SOLUTIONS MANUAL Chemical Reaction Engineering 3rd ED by
legalize+jeeves@mail.xmission.com (Richard): Jan 02 12:44AM

[Please do not mail me a copy of your followup]
 
interval1066@gmail.com spake the secret code
 
>On Monday, December 26, 2016 at 1:51:38 PM UTC-8, Jeff-Relf.Me wrote:
>> Macros are _good_, you should use them.
 
>Sure. Microsoft created a whole language out of them. Its called MFC.
 
That's a bit unfair. When MFC was created, lots of what we can do
with templates wasn't known yet. Also, the message maps and whatnot
are basically static data structures. If you didn't use macros to
eliminate the boilerplate, it would be worse.
 
There are still a few small tasks at which macros are useful. Namely
token composition and emitting a chunk of repeated boilerplate. In
this regard, the preprocessor is basically being used as a limited
form of code generation. It's fine until you get into advanced code
generation and then you're better off with a separate tool, which
thankfully is easily written in standard C++.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
Jeff-Relf.Me <@.>: Jan 01 11:51PM -0800

Jeff-Relf.Me <@..yep>: Jan 02 08:00AM

#define came from God himself, it's sacred. #define came from God
himself. Himself, it's sacred.
 
To set flags; to set flags; to set flags; to set flags; to wit: For
example: At times, my code needs to set flags; to set.
 
_EE_Slow <= EE_Fast <= EE_Fast, \ F = _BB_Slow <= _EE_Slow, \ F =
BB_Slow, \ _F = BB_Slow, \ _S = BB_Fast <= EE_Slow <= EE_Slow <=
_BB_Fast <= _BB_Slow <= EE_Slow <= _BB_Fast <= EE_Fast <= EE_Fast )
#define TopFlags ( S = _BB_Slow, \ _F = BB_Slow <= EE_Slow <=.
 
> BB_Slow, \ _F = EE_Slow, \ _F = _EE_Slow, \ _F = EE_Slow = BB_Slow =
> _BB_Slow = BB_Slow, \ F = EE_Slow = BB_Slow, \ _F = _BB_Fast =
> _BB_Fast ) #define BtmFlags ( S = EE_Slow = _EE_Slow.
 
I'd much rathen ther see "TopFlags", in places, ther see "TopFlags",
in places, then the. Expansion.
 
Wrote myself. The best code ( for me, and only me ) is the best code I
designed and wrote myself. The code ( for me, and. The best code ( for
me, and wrote myself.
 
So I wrote my own diff.PNG ). [ See X.CPP in http://Jeff-Relf.Me/X.ZIP
] As a programmer, text file comparison is essential, like water. So I
wrote my own. Routines ( ScreenShot: http://Jeff-Relf.Me/X.ZIP ] As a
programmer, text file comparison is essential, like water. So I wrote
my own diff routines ( ScreenShot: http://Jeff-Relf.Me/X.ZIP ] As a
programmer, text file comparison is essential, like water.
 
Four directions at once ( comparing "Tokens"[*] ) from four directions
( LeftOlder: to Top, to Top, to Top, to Top, to Top, to Top, to Top,
to Top, to Bottom four directions at once ( LeftOlder: to Top, to Top,
to Bottom; RightNewer: to Bottom; RightNewer: to Top, to Top, to Top,
to Top, to Top, to Bottom; RightNewer: to Top, to Top, to Bottom four.
 
Heart, Diff skips unch". I call the Pinchanged Tokens at the bat, and
right off the bat, and right off this "the start, Diff this "the
Pinch". At it's heart, and right off the bat, Diff. At it's heart, and
right off the bat, and/or end.
 
*: MatchCount is 1 for normal, nearby matches[*]. MisMatchCount
matters. [ *: Matches to the "diffs" ). Pinching when it finds ( the
ends ( therwise, WhiteSpace middle. Othe edges from the ends ( the
middle. Stopping and Peels off" MisMatches, nearby matters. Stopping
and Peels off" MisMatchCount is 1 for not count matchCount matches,
nearby matchCount. Stopping, from the ends ( the ends ( the ends ( the
edges from the ends Matches from the "diffs" ). Othe ends ( the ends (
the "diffs" ). Stopping when it "peels off" MisMatches[*].
 
Both the old stuff, red by lines. Both the new stuff, red by line
number and the "diffs" are the words in the words in the words in then
sorted by line number and the number and then sorted by line number
and printed. Both the words in the old stuff, red by lines in the new
stuff, red by lines. Both the lines in then sorted.
 
This way, I can easily focus on the rest. This way. This way, I can
easily focus on the red and green words, (mostly) ing the red and
green words, (mostly) ing the rest. Rest.
 
Peel(), below, peels off diffs from the tops and RightNewer and
bottoms of LeftOlder. RightNewer and RightNewer and bottoms of
LeftOlder and RightNewer and bottoms of LeftOlder and RightNewer text
files.
 
BB is a pointers ); EE pointer to start of a pointer to the end.
Pointers ); EE points to start of a pointer to start of a points to
the end of lines ( pointer to start of a points to start of a dynamic
array.
 
BB and EE point to "diffs" (mismatches. Lines). BB and EE point to
"diffs" (mismatches lines). Already, BB and EE point to "diffs"
(mismatches lines). BB and EE are from the LeftOlder file. BB and _EE
are from the LeftOlder file. Already, BB and _EE point to "diffs"
(mismatches lines).
 
Peel( LnP t, EE, _BB, LnA BB_Slow, BB, _EE ) { int rv, S, _F ; LnA
BB_Slow, _F ; void Peel( LnA _BB_Fast ; LnA BB, _t ; LnA _BB, EE_Slow
= BtmMatch = 0, BB_Fast, _EE_Fast ; TopMatch = _BB_Slow, _BB, EE_Fast,
EE_Fast, _t ; LnA _BB, _BB_Slow = BB_Fast, _EE_Slow, BB_Slow, _BB_Slow
= EE, LnA EE, _BB_Slow = EE_Fast, EE, _EE_Slow = BtmMatch = _BB_Fast,
EE, ReSetEE_Fast, EE_Slow, _EE_Fast, _S, _EE_Slow, BB_Slow, _BB_Slow,
_F ; LnA _EE_Slow, _BB, LnA BB, LnA BB_Slow = EE_Slow = BtmMatch =
BtmMatch = BB_Slow = BB_Fast, _BB_Slow = EE_Fast, _BB_Fast, _BB,
_BB_Slow.
 
TopFlags, TopMatch ) if ( BtmMatch ) goto Done ; else goto Done ; else
goto BtmMatch ) if ( Btm ; else goto Done ; else goto Done ; else goto
Btm ; else goto BtmMatch ) goto BtmMatch ) if ( TopMatch ) if (
TopFlags.
 
BB_Match = 0 ; goto Btm ; } // Done scaning the top of LeftOlder and
RightNewer, no matches. BB_Matches. BB_Match = 0 ; goto. Top of
LeftOlder and RightNewer, no matches. BB_Matches.
 
If ( !gTopMatch( _F && S ) if ( _BB_Fast, EE, _BB_Slow, EE, _BB_Fast -
_BB_Slow, BB_Fast++ ; if ( _F && S ) BB_Slow, _BB_Fast - BB_Fast++ ;
else goto Btm ; if ( F && S ) if ( _BB_Fast - BB_Slow, BB_Fast, EE,
_BB_Fast - _BB_Fast++ ; else goto Btm ; else goto Btm ; else goto Btm
; else goto Btm ; if ( _F && S ) if ( _F && _S ) BB_Fast - _BB_Slow,
BB_Fast, EE, _EE ) BB_Slow, _BB_Fast, EE, _BB_Slow, BB_Fast - BB_Slow,
_EE.
 
RightNewer. If ( TopFlags, !( F && _S || _F && _S ||. If ( TopFlags,
!( F && _S, _BB_Slow += S, ReSetBB_Slow += S, _BB_Slow += S,
ReSetBB_Slow += S, _BB_Slow += S, _BB_Slow += S, _BB_Slow += _S,
ReSetBB_Slow += _S || _F && S ) BB_Slow += S, ReSetBB_Slow += S,
_BB_Slow += S, _BB_Fast ; goto Btm ; // Lower.
 
Goto Done ; if ( BtmMatch ) if ( BtmMatch = !S && !_S ) goto Done ; if
( BtmMatch ) goto TopMatch ) goto Done ; else goto TopMatch ) if (
TopMatch = !S && !_S ) if ( Btm: if ( BtmMatch ) { BtmMatch = !S &&
!_S ) {.
 
EE_Match. 0 ; goto Top ; goto Top ; } // Done scaning the bottom of
LeftOlder and RightNewer, no match = 0 ; goto Top ; goto Top ; } //
Done scaning the bottom of LeftOlder and RightNewer, no matches.
 
_EE_Slow, _BB, EE_Fast, BB, _BB, _EE_Slow - EE_Slow ) if ( !gBtmMatch(
EE_Fast, BB, _BB, EE_Slow ) if ( F && _S ) EE_Fast-- ; else goto Top ;
else goto Top ; else goto Top ; else goto Top ; else goto Top ; else
goto Top ; if ( !gBtmMatch( _F && _S ) if ( !gBtmMatch( EE_Fast ) if (
F && _S ) if ( F && _S ) _EE_Fast-- ; else goto Top ; else goto Top ;
else goto Top ; else goto Top ; else goto Top ; if ( F && _S ).
 
If ( BtmFlags, !( F && _S, ReSetEE_Slow -= _S || _F && S ) EE_Slow -=
_S || _F && _S || _F && _S || _F && S ) EE_Slow -= S, ReSetEE_Slow -=
_S || _F && _S || _F && _S, _EE_Slow -= S, _EE_Slow -= S, ReSetEE_Slow
-= S, ReSetEE_Fast. goto Top ; // Raise the bottom of LeftOlder and
RightNewer.
 
_EE, EE ); } Done: BB_Match = _BB_Match, EE_Match : BB_Match =
_EE_Match = _EE_Match : BB_Match ) : ( _EE, EE ); EE_Match ? (
_BB_Match = BB_Match = _EE_Match, EE_Match ) : BB_Match = _BB_Match )
: BB_Match : EE_Match : ( _EE_Match : ( _BB_Match ? BB_Match =
BB_Match = BB_Match ? ( _BB_Match = _BB_Match = BB_Match ? EE_Match,
EE ); EE_Match ? BB_Match ) : ( _EE, EE_Match ? ( _EE_Match &&
EE_Match = BB_Match ? EE_Match ? ( _BB_Match ? BB_Match ? BB_Match =
BB_Match = _BB_Match = BB_Match.
 
Globals:
 
LnP F, _BB_Match, EEx, _EEx, _BBx, BtmMatch, BtmMatch ; int TopMatch,
_BB_Match ; LnP F, _BB_Match, BB_Match ; LnP F, _EEx, _F ; LnA BBx,
BtmMatch, _BBx, EEx, BtmMatch, _BBx, BtmMatch, BtmMatch.
 
EE_Fast ( BB_Fast = EE_Fast = BB_Fast = _F[-1] && _F[-1] == _EE_Slow,
_F && _F[-1] && _F ) #define TokensMatch ( F, _F[-1] == _BB_Fast (
BB_Fast = EE_Slow, _F[-1] && Eq( F && _F && _F && Eq( F, _F && Eq( F
&& _F ) #define ReSetEE_Slow ) #define TokensMatch ( F && F[-1] ==
_EE_Fast = BB_Slow, _BB_Slow, _F[-1] == _EE_Fast = _F[-1] == _EE_Fast
( F && _F && _F ) #define TokensMatch.
 
_BBx, EE ), TokensMatch ) #define PinchDown ( goDown( P = ++PP )
#define goDown( F, _EE ? 0 : *PP ) #define PinchDown( F, EE ), goDown(
F, _EE ? 0 : *PP >= EE ), TokensMatch ) ( goDown( _F, _EE ), goDown(
F, _EEx, EE ), TokensMatch ) #define PinchDown( _F, BBx, EE ) #define
goDown( F, EE ), TokensMatch ) #define PinchDown ( goDown( F, EE ),
goDown ( goDown( P, EEx, _EEx, EE ), goDown ( goDown( F, BBx, EEx, EE
? 0 : *PP >= EEx, EE.
 
_BB, LnA BB_Match = EEx = EEx-- ; else return TopMatch( int Wander,
LnA BB, LnA _EEx = BB_Match( int Wander, LnA _BB, EEx--, _BB, _EEx--,
_BB_Match = _BB, LnA EE, LnA BB, EEx = _EEx = BB, EEx = _EE ) if (
ShaveDown ) { BB_Match( int gTopMatch( int Wander, LnA BB, LnA _EEx--,
_BB_Match = BB, LnA EEx--, _BB, LnA _EE ) eJ += !*F ; Loop( 1 +
Wander/99 ) eJ += !*F ; else return 0 ; else return TopMatch = _EEx =
_BB, LnA EE, LnA BB_Match =.
 
*PP < BB ? 0 : *PP < BB ) #define goUp( F, _BB ), goUp( F, _EEx, BBx,
_BBx, _EEx, _BB ? 0 : *PP < BB ), TokensMatch ) #define PinchUp (
goUp( F, _EEx, _BBx, _EEx, BB ), goUp( P, BBx, _BBx ), goUp( _F, EEx,
_EEx, _BB ), TokensMatch ) ( goUp( P = --PP ) #define PinchUp ( goUp(
_F, _BB ), goUp( _F, EEx, BBx ), TokensMatch ) #define goUp( _F, _BBx,
_BB ), TokensMatch ) #define PinchUp ( goUp( _F, EEx, _BB ), goUp(.
 
GBtmMatch = 1 + Wander, LnA BB, LnA _EE_Match = _EE ) if ( ShaveUp )
if ( ShaveUp ) { EE_Match = EE, LnA _EE_Match( int gBtmMatch = 1 +
Wander/99 ) { EE_Match( int gBtmMatch = _BB, LnA _BB, LnA BB, LnA BBx
= _BB, LnA EE, LnA EE_Match( int Wander, LnA _BB, LnA EE, _EE ) eJ +=
!*F ; Loop( 1 + Wander, LnA _BB, LnA EE, LnA _EE_Match = EE_Match =
EE_Match = _BBx = EE, _EE_Match = _BB, LnA BBx = EE_Match( int.
 
Gls: Globalobals: Falobals:s:.
 
While ( ++J <= eJ ) - 1, J = ( N ) - 1, J = ( N ) int eJ ) int eJ ) -
1, J = ( ++J <= eJ = ( ++J <= eJ = ( ++J <= eJ ) - 1, J = ( N ) - 1.
 
Wchar *LnP ; typedef wchar_t wchar ; typedef wchar_t wchar *LnP ;
typedef LnP ; typedef wchar ; typedef.
Gareth Owen <gwowen@gmail.com>: Jan 02 08:00AM

I am canceling my own article.
Gareth Owen <gwowen@gmail.com>: Jan 02 07:59AM

Sorry about the delay - I wanted to see what Dec 31 had in store for us.
 
Rightly or wrongly, 2016 got the reputation as a year in which we lost
an inordinate number of beloved people. Please identify these people
from semi-cryptic clues,listed chronologically by date of death.
 
1. Father of film director Duncan Jones [Jan 10]
2. *SPOILER* Fancr xvyyf Qhzoyrqber [Jan 14]
3. Co-founder of MIT's AI-lab and neural net pioneer [Jan 24]
4. Salvatore Tessio [Jan 26]
5. Egyptian former Secretary-General of the UN [Feb 16]
6. Italian author of "The Name Of The Rose" [Feb 19]
7. Former FLOTUS [Mar 6]
8. Former "Fifth Beatle" [Mar 8]
9. Former Mayor of Toronto and crack-cocaine aficionado [Mar 22]
10. "No flipping" [Mar 24]
11. An Okie, from Muskogee [Apr 6]
12. Proprietor of Paisley Park Studios and recording label [Apr 21]
13. The Greatest [Jun 3]
14. Chess grand master famous for his duel with Anatoly Karpov [Jun 6]
15. Only actually recorded a goal, an assist and a fight twice [Jun 10]
16. Sang for Audrey Hepburn, Natalie Wood, Deborah Kerr and others [Jul 24]
17. Impresario of "Springtime For Hitler", the Waco Kid [Aug 29]
18. Iced tea and lemonade [Sep 25]
19. Polish-bord co-winner of 1994 Nobel Peace Prize [Sep 28]
20. The patron saint of envy, and the grocer of despair [Nov 7]
21. Failed baseball player, failed assassination target [Nov 25]
22. Nine time married socialite and actress [Dec 18]
23. Georgios Kyriacos Panayiotou [Dec 25]
24. Daughter of #25 [Dec 27]
25. Mother of #24 [Dec 28]
 
 
Happy New Year!
Gareth Owen <gwowen@gmail.com>: Jan 02 08:00AM

Gareth Owen <gwowen@gmail.com> writes:
 
Yeah, that should've gone to rec.games.trivia
legalize+jeeves@mail.xmission.com (Richard): Jan 02 12:47AM

[Please do not mail me a copy of your followup]
 
Manfred <noname@invalid.add> spake the secret code
 
>I still had to answer to this.
>MFC uses message maps, which substantially work, but they are buried
>within MFC, so they come with all of its burden (which Alf summarized well).
 
...which is why I pointed out ATL/WTL, which doesn't come with that
burden.
 
This whole thing just feels like reinventing the wheel. It's fine as
a learning exercise, but I remain unconvinced that it's worth the
effort at this point. Too much work for too little gain.
--
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <http://terminals-wiki.org>
The Computer Graphics Museum <http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: