我想端口一些C++ 17個代碼我在Ubuntu做(GNU + 11)Windows上的C++ 17是否與Ubuntu上的C++ 17保持一致?
typedef boost::variant<int, float, std::string > Variant;
using Func = std::function<std::vector<unsigned char>(std::vector<Variant>)>;
void addexecutorfunc(Func callback, const auto&...args)
{
std::vector<Variant> vec = {args...};
executor.add(vec, std::move(callback));
}
這個代碼編譯和ubuntu上工作正常,但試圖在Windows編譯與Visual Studio 2017年時, (V141)[ISO C++的最新標準草案(/ STD:C++最新的),然後我得到如下:
類型錯誤C3533:參數不能包含 '自動'
我想也許它與Concepts lite沒有關係在當前的C++ 17版本中實現還是這是錯誤的?
如果我可以設置編譯器使用自動作爲參數和參數包,那將是最好的,但如果這是不可能的,那麼我將不得不重寫我的代碼以遵循C++ 17窗口標準 - 任何建議如何做到這一點沒有在模板地獄
假設你正在談論GCC和MSVC,爲什麼不使用MinGW的? – Quentin
我也可以只使用Cygwin的,但我希望有一個乾淨的Windows C++解決方案 – serup
但給定的代碼似乎並沒有一個有效的,即使'GNU + 11'。你的意思是'gnu ++ 17'嗎? – VTT