static void test_tuple_cat () { rw_info (0, __FILE__, __LINE__, "tuple_cat"); #define FirstHalf bool, char, int, double #define SecondHalf void*, UserDefined typedef std::tuple<FirstHalf> FirstTuple; FirstTuple t1 (true, 'a', 256, 3.14159); typedef std::tuple<SecondHalf> SecondTuple; SecondTuple t2 (&t1, UserDefined ()); typedef std::tuple<FirstHalf, SecondHalf> WholeTuple; //WholeTuple t3 (tuple_cat (t1, t2)); }
// scans the Input into a symbol list bool opScanner::Scan(FileReadStream& ifs, ScanMode mode, opNode* root) { Tokens.Clear(); ScanError = false; CurrentLine = 1; ScanComplete = false; scanMode = mode; Root = root; inputtype Input; ifs.ReadToContainer(Input); FixNewlines(Input); int it = 0; ScanTokens(Input); if (opError::HasErrors()) return false; // post scanning stuff Preprocessor(); FixStrings(); Keyword(); if (scanMode != SM_DialectMode) { BasicType(); UserDefined(); } ContinueLines(); Decimals(); WideStrings(); FixNumbers(); if (scanMode == SM_NormalMode) CPlusPlus(); ScanComplete = true; return true; }