blob: ca5a24a7db7498c86ece48ff5e6da236a6212a0d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// file : build/variable.ixx -*- C++ -*-
// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC
// license : MIT; see accompanying LICENSE file
namespace build
{
inline const value_proxy& value_proxy::
operator= (value_ptr v) const
{
*p = std::move (v);
return *this;
}
inline const value_proxy& value_proxy::
operator= (const value_proxy& v) const
{
if (this != &v)
{
if (v)
*p = v.as<const value&> ().clone ();
else
p->reset ();
}
return *this;
}
inline const value_proxy& value_proxy::
operator= (std::string v) const
{
// In most cases this is used to initialize a new variable, so
// don't bother trying to optimize for the case where p is not
// NULL.
//
p->reset (new list_value (std::move (v)));
return *this;
}
inline const value_proxy& value_proxy::
operator= (path v) const
{
p->reset (new list_value (std::move (v)));
return *this;
}
}
|