相关疑难解决方法(0)

什么是复制和交换习语?

这个成语是什么,什么时候应该使用?它解决了哪些问题?当使用C++ 11时,成语是否会改变?

虽然在许多地方已经提到过,但我们没有任何单一的"它是什么"问题和答案,所以在这里.以下是前面提到的地方的部分列表:

c++ c++-faq copy-constructor assignment-operator copy-and-swap

1907
推荐指数
5
解决办法
34万
查看次数

带有叮当声的模板阴影错误

正如以下代码片段中的注释所说,这是 gcc 4.4 的解决方法。错误,我现在可能应该删除它。有关此背景的信息,请参阅带有 gcc 4.4 的模板模板参数和可变参数模板

在任何情况下,这都会在带有 clang 3.4.2-4 的 Debian Wheezy 上出现错误,从不稳定向后移植。这适用于 gcc 4.9,也从 Debian Wheezy 上的不稳定(和 4.7)向后移植。

// Workaround for gcc 4.4 bug. See /sf/ask/596024341/
template <typename S, typename T,
      template <typename S, typename T, typename... Args> class C,
      typename... Args>
struct maptype
{
  typedef C<S, T, Args...> type;
};

int main(void){}
Run Code Online (Sandbox Code Playgroud)

错误是

clang++ -o shadow.ocl -c -ftemplate-depth-100 -fno-strict-aliasing -fno-common -ansi -Wextra -Wall -Werror -Wno-unused-function -Wc++0x-compat -Wpointer-arith -Wcast-qual -Wcast-align -std=c++11 -mtune=native -msse3 -O3 shadow.cc
shadow.cc:3:23: …
Run Code Online (Sandbox Code Playgroud)

c++ templates g++ template-templates clang++

3
推荐指数
1
解决办法
4110
查看次数