title: std::unique_ptr with lambda custom deleter doesnt compile
body: <p>Can't find whats the problem in following code</p>
  
  <pre><code>std::unique_ptr&lt;CFStringRef, std::function&lt;void(CFStringRef)&gt;&gt;
  cfstr(CFStringCreateWithCString(NULL, str, kCFStringEncodingUTF8),
                                   [](CFStringRef obj){
                                       CFRelease(obj);
                                   });
  </code></pre>
  
  <p>CFStringCreateWithCString should return correct type as per <a href="https://developer.apple.com/reference/corefoundation/1542942-cfstringcreatewithcstring?language=objc" rel="nofollow">CFStringCreateWithCString documentation</a></p>
  
  <p>Error:</p>
  
  <pre><code>/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++11 -stdlib=libc++ -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wno-unused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wno-constant-conversion -Wno-int-conversion -Wno-bool-conversion -Wno-enum-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.7 -g -fvisibility-inlines-hidden -Wno-sign-conversion -D_DEBUG -DDEBUG -MMD -MT dependencies -MF -c DynamicStore.cpp -o DynamicStore.o
  
  DynamicStore.cpp:29:5: error: no matching constructor for initialization of 'std::unique_ptr&lt;CFStringRef, std::function&lt;void (CFStringRef)&gt; &gt;'
      cfstr((CFStringRef)CFStringCreateWithCString(NULL, str, kCFStringEncodingUTF8),
  
  main.cpp:73:14: note: in instantiation of function template specialization 'std::__1::for_each&lt;std::__1::__wrap_iter&lt;const std::__1::sub_match&lt;const char *&gt; *&gt;, (lambda at main.cpp:73:45)&gt;' requested here
          std::for_each(cm.begin(), cm.end(), [](const std::cmatch &amp;s){
               ^
  main.cpp:73:45: note: candidate function not viable: no known conversion from 'const std::__1::sub_match&lt;const char *&gt;' to 'const std::cmatch' (aka 'const match_results&lt;const char *&gt;') for 1st argument
          std::for_each(cm.begin(), cm.end(), [](const std::cmatch &amp;s){
                                              ^
  main.cpp:73:45: note: conversion candidate of type 'void (*)(const std::cmatch &amp;)'
  </code></pre>