我正在尝试使用带有lambda函数的c ++ 11线程。我已经在另一个类上使用它了,但由于某些原因我在LogManager静态类中遇到了一些奇怪的问题。
我的“最小”课程是:
#include <iostream>
#include <fstream>
#include <map>
#include <vector>
#include <algorithm>
#include <thread>
using namespace std;
namespace Debug {
enum LogLevel{
ERROR, /*!< Mensagens de erro. */
WARNING, /*!< Mensagens de alerta. */
MESSAGE, /*!< Mensagens gerais, normalmente utilizadas para propositos de debug. */
UNKNOWN /*!< Mensagems de de origem desconhecidas, normalmente utilizadas em exceptions */
};
class LogManager{
public:
template<typename T, typename... Args>
static void log(LogLevel logLevel, const char *string, T value = "", Args... args){
std::thread t([=](){
std::cout << "thread function\n";
});
}
};
}
当我尝试编译时,我得到一些:
错误2错误C4430:缺少类型说明符 - 假定为int。注意:C ++不支持default-int - 错误
它似乎不是一个编译器问题,我在另一个类上有“相同”的代码,它似乎是我忘记的东西,我不知道静态类是否可能是一个问题。
由于