Bei der Zuweisung eines Objekts an Static Member einer Klasse ist Vorsicht geboten!
Folgende Schreibweise ist zwar C++ konform:
std::atomic<uint64_t> connection::m_next_free_connhandle = 1;
…für GCC muss jedoch wie folgt umgestellt werden:
std::atomic<uint64_t> connection::m_next_free_connhandle(1);
GCC ruft sonst nicht den Konstruktor für den Static Member auf, sondern den Konstruktor für ein temporäres Objekt + den copy-Konstruktor. Und der ist bei manchen Klassen nicht vorhanden (selbst wenn, wäre das überflüssige Mehrarbeit).
Stand: 12.02.2016
— : Jürgen Kreick
EOF