There really isn't any tie between HFT and C++. C++ is a tool, and
as a tool, it can be applied to many problems.
Modern HFT relies more on hardware than software (e.g. low-latency
interconnects to the exchanges, such that most brokerages and investment
banks colocate equipment in the exchange, and the fiber links between
the exchange systems and colocated hosts are intentionally designed
to be equal in length (so that one colocated host doesn't get a
feed a few nanoseconds ahead of another)).
Consider, for example, criteria for interconnect links:
Transport Technology Switch/Endpoint Encoding/Decoding/Equalization latency
-------------------- ---------------------------
10G (SFP to Fibre) 300ns
10G-BaseT (Copper) 2500 ns
That 2200ns is circa 6000 instructions on a 3Ghz processor, depending
on IPC. Can give a trader quite an advantage, if for a competitor
every switch hop/host ingress or egress adds 2200ns latency.
The ratio is roughly the same for 40G and 100G links.
Note that this eliminates TCP as a viable transport - most use UDP and
take care to ensure that there aren't dropped packets.
Algorithmic processing is often offloaded to custom coprocessors
(generally Field-Programmable Gate Arrays, which are programmed in
Verilog/VHDL).
One should be comfortable with B-S[*] and derivitives to operate in such environments.
[*]
http://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model
Given the low-latency requirements, C++ may not be the best choice anyway.