C++/STL Prime tuples (twin, cousin, sexy) up to the given limit
std::min_element is unwarranted. The list is initially sorted, and remove_if guarantees to maintain the order of remaining elements. A minimal element is *l.cbegin().
removeElementsInListDivisibleByP is very hard to read. Consider remove_multiples_of_P.
The list initialization loop really wants to be std::iota.
The sieving does work, but it seems less efficient than the classical one.
If an std::vector can be used, it performs better than std::list (mostly due to preferential locality and less memory overhead). You may want to experiment.
I don't see what adjacent_find is supposed to do. Is it a remnant of some debugging code, perhaps?