It's definitely not idiomatic in C++. The standard reserves names starting with an underscore and a capital letter or containing double underscores in any scope, and identifiers beginning with an underscore in the global namespace.
Most style guides I've seen that use underscores in identifier names use trailing underscores deliberately to avoid colliding with names reserved by the standard.
Popularity doesn’t mean something isn’t “a remnant of the 80s”, as the previous poster put it.
And PHP still has __construct() and friends. It still looks like a remnant of the '80s, though.