auto

    0熱度

    2回答

    此代碼不能編譯(英特爾ICC 15.0.3),即返回在這種情況下鍵入的是bool。爲什麼auto不能用作函數聲明的返回類型?這個功能很好地支持DRY principle。

    0熱度

    1回答

    我有以下簡化文件和類: Stat.h: class Stat { auto getMinMaxValue(std::unordered_map< int, int >&); }; Stat.cpp: auto Stat::getMinMaxValue(std::unordered_map< int, int >&m) { return std::minmax_elem

    0熱度

    1回答

    我定義了一個自動字符數組如下: char buffer[100]; 當我編譯,編譯器返回以下錯誤: error: (1250) could not find space (100 bytes) for variable _buffer 但是,當我將其更改爲: static char buffer[100]; 程序編譯成功。 注1: 我的目標設備16f1829。 注2: 編譯器版本是1.

    3熱度

    2回答

    Structured bindings已經與C++ 17一起引入。它們可以聲明從元組或結構初始化的多個變量。 該代碼使用c++17編譯器進行編譯。 #include <iostream> #include <tuple> int main() { auto tuple = std::make_tuple(1.0, 1); auto [ d, i ] = tuple;

    1熱度

    1回答

    我有個宏: #define checkAlloc(ans) checkPointer((ans), __FILE__, __LINE__); 其用於環繞任何指針分配,以檢查它是有效的(用於GPU設備上檢查內存分配側)。 宏的使用步驟如下: SomeObject* myObj = checkAlloc(new SomeObject()); 和checkPointer功能被實現爲: inlin

    3熱度

    2回答

    在main函數中,我創建了一個變量const int指針,將其指定給由auto&聲明的變量。然後使用decltype(x)來檢查類型。我預計這種類型是const int*。但是is_same返回false。 int main() { int a = 10; const int * cp_val= &a; auto& x = cp_val; bool is_

    -2熱度

    1回答

    Visual Studio在auto**上顯示錯誤。爲什麼? 我的代碼: auto** getMetaInfo(SQLHANDLE sqlStmtHandle) { SQLCHAR colName[256]; SQLSMALLINT colNameLen; SQLSMALLINT dataType; SQLSMALLINT numDecimalDigit

    0熱度

    1回答

    我有一個名爲Handler的類,它存儲了一些lambda表達式。我想要做的是有一個std::vectorstd::function存儲我的所有事件,例如。我真的不明白爲什麼lambda不能按我的預期工作。 這裏的handler.h: class Handler { public: Handler(); ~Handler(); void Register(cons

    0熱度

    1回答

    這是我寫的代碼,看看如何auto關鍵字的作品,但它沒有在Dev C++編譯並給出以下警告: [警告] C++ 11自動只可用使用-std = C++ 11或-std = gnu ++ 11 如何克服這個故障並做出警告所要做的事情? #include<iostream> #include<string> #include<vector> using namespace std; int m

    2熱度

    1回答

    試圖理解爲什麼類型推導在這裏與條件運算符一起失敗。 在這種情況下,標準中的某些東西試圖防止類型扣除?任何理解這一點的指針都會很棒。 auto mfact(int i) { return (0==i) ? 1 : i * mfact(i-1); } auto mfact2(int i) { if (0 == i) return 1; else