diff options
| author | Howard Hinnant <hhinnant@apple.com> | 2010-05-11 19:42:16 +0000 |
|---|---|---|
| committer | Howard Hinnant <hhinnant@apple.com> | 2010-05-11 19:42:16 +0000 |
| commit | 3e519524c118651123eecf60c2bbc5d65ad9bac3 (patch) | |
| tree | b2dd4168cfe448920a602cd7d2e40f95da187153 /libcxx/test/utilities/utility/forward/move_only4.fail.cpp | |
| parent | 9132c59d43b6c590c9bb33496eebf9f192d6857a (diff) | |
| download | bcm5719-llvm-3e519524c118651123eecf60c2bbc5d65ad9bac3.tar.gz bcm5719-llvm-3e519524c118651123eecf60c2bbc5d65ad9bac3.zip | |
libcxx initial import
llvm-svn: 103490
Diffstat (limited to 'libcxx/test/utilities/utility/forward/move_only4.fail.cpp')
| -rw-r--r-- | libcxx/test/utilities/utility/forward/move_only4.fail.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/libcxx/test/utilities/utility/forward/move_only4.fail.cpp b/libcxx/test/utilities/utility/forward/move_only4.fail.cpp new file mode 100644 index 00000000000..181aa3451ed --- /dev/null +++ b/libcxx/test/utilities/utility/forward/move_only4.fail.cpp @@ -0,0 +1,52 @@ +//===----------------------------------------------------------------------===// +// +// ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// test move + +#include <utility> +#include <cassert> + +#include <typeinfo> +#include <stdio.h> + +class move_only +{ +#ifdef _LIBCPP_MOVE + move_only(const move_only&); + move_only& operator=(const move_only&); +#else + move_only(move_only&); + move_only& operator=(move_only&); +#endif + +public: + +#ifdef _LIBCPP_MOVE + move_only(move_only&&) {} + move_only& operator=(move_only&&) {} +#else + operator std::__rv<move_only> () {return std::__rv<move_only>(*this);} + move_only(std::__rv<move_only>) {} +#endif + + move_only() {} +}; + +move_only source() {return move_only();} +const move_only csource() {return move_only();} + +void test(move_only) {} + +int main() +{ + move_only a; + const move_only ca = move_only(); + + test(csource()); +} |

