+++ /dev/null
-// GROUPS passed destructors
-#include <stdio.h>
-
-int destruct = 0;
-
-class bla {
-
-public:
-
- inline bla(char * jim) { ; };
-
- inline ~bla() { destruct++; if (destruct == 2) printf ("PASS\n");};
-};
-
-class ulk {
-
-public:
-
- inline ulk() {};
- inline ~ulk() {};
-
- void funk(const bla & bob) { ;};
- // ^ interestingly, the code compiles right if
- // this & is deleted (and therefore the parameter
- // passed as value)
-};
-
-int main() {
-
- ulk dumm;
-
- dumm.funk(bla("laberababa")); // this compiles correctly
-
- dumm.funk((bla)"laberababa"); // this produces incorrect code -
- // the temporary instance of
- // the class "bla" is constructed
- // but never destructed...
-
-
-}