# Cinder::signals::communication cannot be assigned

**URL:** <https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580>\
**Category:** Using Cinder\
**Created:** [February 25, 2017, 11:01pm UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580 "2017-02-25T23:01:20Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Craigson](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/craigson/32/43_2.png) [@Craigson](https://discourse.libcinder.org/u/Craigson)\
**Post date:** [February 25, 2017, 11:01pm UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/1 "2017-02-25T23:01:21Z")

</div>

Hi All,

Trying to run an on a project that was originally developed for 0.9.0. I’m working off of the current master branch. I cloned the repo and built using xcode, which threw the following error:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/algorithm:1751:19: Object of type ‘cinder::signals::Connection’ cannot be assigned because its copy assignment operator is implicitly deleted

I’ve never run into this before so am at a bit of a loss as to the solution. I’ve read the other forum posts RE boost and cinder::signals, but now sure if/how my problem is related. Any advice would be appreciated.

Thanks,

Craig

---

<div class="post-metadata">

**Author:** ![rich.e](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/rich.e/32/1025_2.png) [@rich.e](https://discourse.libcinder.org/u/rich.e)\
**Post date:** [February 26, 2017, 1:08am UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/2 "2017-02-26T01:08:34Z")

</div>

Hey there,

Can you post the code that causes the build error? It should be further down in that compiler error message.

---

<div class="post-metadata">

**Author:** ![Craigson](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/craigson/32/43_2.png) [@Craigson](https://discourse.libcinder.org/u/Craigson)\
**Post date:** [February 26, 2017, 1:42am UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/3 "2017-02-26T01:42:08Z")

</div>

Hey Rich,

Full compilier error message:

/Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/ImGui/src/CinderImGui.cpp:1:1: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/ImGui/src/CinderImGui.cpp:1:  
/Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/SketchCNC\_Prefix.pch:4:11: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/SketchCNC\_Prefix.pch:4:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/app/App.h:29:11: In file included from …/…/…/Cinder/include/cinder/app/App.h:29:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/app/cocoa/AppMac.h:26:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/app/cocoa/AppMac.h:26:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/app/AppBase.h:28:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/app/AppBase.h:28:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/app/Platform.h:26:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/app/Platform.h:26:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/DataSource.h:28:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/DataSource.h:28:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/Url.h:26:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/Url.h:26:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/Stream.h:27:10: In file included from /Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/…/…/…/Cinder/include/cinder/Stream.h:27:  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/Exception.h:26:10: In file included from …/…/…/Cinder/include/cinder/Exception.h:26:  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string:439:10: In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/string:439:  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/algorithm:1775:19: In instantiation of function template specialization ‘std::\_\_1::\_\_copy\<const cinder::signals::Connection \*, cinder::signals::Connection \*\>’ requested here  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/vector:1404:30: In instantiation of function template specialization ‘std::\_\_1::copy\<const cinder::signals::Connection \*, cinder::signals::Connection \*\>’ requested here  
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/vector:584:10: In instantiation of function template specialization ‘std::\_\_1::vector\<cinder::signals::Connection, std::\_\_1::allocatorcinder::signals::Connection \>::assign\<const cinder::signals::Connection \*\>’ requested here  
/Users/Craig/Documents/cinder\_dev/myProjects/SketchCNC/xcode/ImGui/src/CinderImGui.cpp:996:21: In instantiation of member function ‘std::\_\_1::vector\<cinder::signals::Connection, std::\_\_1::allocatorcinder::signals::Connection \>::operator=’ requested here  
/Users/Craig/Documents/cinder\_dev/Cinder/include/cinder/Signals.h:124:2: Copy assignment operator is implicitly deleted because ‘Connection’ has a user-declared move constructor

and here’s the code from the algorithm file:

```
template <class _InputIterator, class _OutputIterator>
inline _LIBCPP_INLINE_VISIBILITY
_OutputIterator
__copy(_InputIterator__first, _InputIterator __last, _OutputIterator__ result)
{
    for (; __first !=__ last; ++__first, (void) ++__result)
        * __result = *__ first;
    return __result;
}

```

and from the CinderImgui.cpp file:

```
void connectWindow( ci::app::WindowRef window )
{
	sWindowConnections = {
		window->getSignalMouseDown().connect( mouseDown ),
		window->getSignalMouseUp().connect( mouseUp ),
		window->getSignalMouseDrag().connect( mouseDrag ),
		window->getSignalMouseMove().connect( mouseMove ),
		window->getSignalMouseWheel().connect( mouseWheel ),
		window->getSignalKeyDown().connect( keyDown ),
		window->getSignalKeyUp().connect( keyUp ),
		window->getSignalResize().connect( resize ),
	};
}
```

---

<div class="post-metadata">

**Author:** ![petros](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/petros/32/26_2.png) [@petros](https://discourse.libcinder.org/u/petros)\
**Post date:** [February 26, 2017, 11:19am UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/4 "2017-02-26T11:19:18Z")

</div>

Hey,

you are missing this PR probably [https://github.com/simongeilfus/Cinder-ImGui/pull/31](https://github.com/simongeilfus/Cinder-ImGui/pull/31)

Cheers,  
Petros

---

<div class="post-metadata">

**Author:** ![rich.e](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/rich.e/32/1025_2.png) [@rich.e](https://discourse.libcinder.org/u/rich.e)\
**Post date:** [February 26, 2017, 4:08pm UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/5 "2017-02-26T16:08:09Z")

</div>

> you are missing this PR probably [https://github.com/simongeilfus/Cinder-ImGui/pull/314](https://github.com/simongeilfus/Cinder-ImGui/pull/314)

I had only just noticed that (don’t use ImGui myself), wrote a comment there that possibly we need to address something in `ci::signals::Connection`?

---

<div class="post-metadata">

**Author:** ![Craigson](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/craigson/32/43_2.png) [@Craigson](https://discourse.libcinder.org/u/Craigson)\
**Post date:** [February 26, 2017, 10:22pm UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/6 "2017-02-26T22:22:27Z")

</div>

Hey Petros and Rich,

Using Simon’s fork of ImGui solved the problem. I’d like to try and understand a little more what was going on / what the problem is. I’ve been digging through the cinder::signals code to try and get a better idea, but any other resources would be welcomed.

Thanks again for the help,

Craig

---

<div class="post-metadata">

**Author:** ![felixfaire](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.libcinder.org/felixfaire/32/168_2.png) [@felixfaire](https://discourse.libcinder.org/u/felixfaire)\
**Post date:** [February 27, 2017, 10:40am UTC](https://discourse.libcinder.org/t/cinder-signals-communication-cannot-be-assigned/580/7 "2017-02-27T10:40:37Z")

</div>

Just noticed this effects some other blocks that use Signals too (Cinder-UiTree for example).

Might be worth adding a note to the next RFC about the work on the master branch that people may need to update their blocks to work in the future.
