diff options
Diffstat (limited to 'tests/cpp/tdont_init_instantiation.nim')
-rw-r--r-- | tests/cpp/tdont_init_instantiation.nim | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/cpp/tdont_init_instantiation.nim b/tests/cpp/tdont_init_instantiation.nim new file mode 100644 index 000000000..a13a3f6b4 --- /dev/null +++ b/tests/cpp/tdont_init_instantiation.nim @@ -0,0 +1,29 @@ +discard """ + targets: "cpp" + output: '''''' + disabled: true +""" + +# bug #5140 +{.emit:""" +#import <cassert> + +template <typename X> class C { + public: + int d; + + C(): d(1) { } + + C<X>& operator=(const C<X> other) { + assert(d == 1); + } +}; +""".} + +type C[X] {.importcpp, header: "<stdio.h>", nodecl.} = object +proc mkC[X]: C[X] {.importcpp: "C<'*0>()", constructor, nodecl.} + +proc foo(): C[int] = + result = mkC[int]() + +let gl = foo() |