C++ folks tend to dislike linked lists because it's awkward to make C++ lists intrusive. The STL list containers store the pointers in a separate allocation from the object itself, so they're slower than they ought to be.
class Foo {
Foo *m_next;
Foo *m_next_mru;
Foo *m_next_sibling;
};
With the STL implementation, only one list can have the item inlined; all the other linked lists need two indirections to get to the next element.