aboutsummaryrefslogtreecommitdiff
path: root/libbutl/process.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
commitc09cd7512491cee1e82c1ad8128ce9fd4bc3f79b (patch)
treea659ed768d849130ab5780a11b7f791a463a1a91 /libbutl/process.ixx
parent2a00871f07067f8f9e2de08bb9c8f50e1bf6a650 (diff)
Initial modularization with both Clang and VC hacks
Note: gave up on VC about half way though.
Diffstat (limited to 'libbutl/process.ixx')
-rw-r--r--libbutl/process.ixx9
1 files changed, 7 insertions, 2 deletions
diff --git a/libbutl/process.ixx b/libbutl/process.ixx
index 1f1a2f4..c355855 100644
--- a/libbutl/process.ixx
+++ b/libbutl/process.ixx
@@ -2,8 +2,6 @@
// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
-#include <utility> // move()
-
namespace butl
{
// process_path
@@ -35,14 +33,21 @@ namespace butl
inline process_path& process_path::
operator= (process_path&& p)
{
+
if (this != &p)
{
if (args0_ != nullptr)
*args0_ = initial;
initial = p.initial;
+
+#if defined(__cpp_modules) && defined(__clang__) //@@ MOD Clang ICE
+ recall = p.recall;
+ effect = p.effect;
+#else
recall = std::move (p.recall);
effect = std::move (p.effect);
+#endif
args0_ = p.args0_;
p.args0_ = nullptr;