Чудны способности твои, о стандарт !
От: B0FEE664  
Дата: 30.09.15 16:21
Оценка:
Заглянул в С++14, нашёл шаблонные переменные.

Тут же решил воплотить давнее желание — собрать указатели на все локальные строки в глобальный map, но уже на первом шаге получил ошибку: "error: use of deleted function".

Зато понял, что имена переменных могут включать в себя угловые скобки (бессмысленная возможность):
#include <iostream>
     
template<class T>
int len = 2;
     
template<class Fn>
const char* s_str = Fn();
     
//template<class Fn>
//auto x = Fn();
     
int main()
{
    class centimeter {};
    class meter {};
    class nothing {};
     
    len<centimeter> = 100 * len<meter>;
     
    std::cout << len<nothing> << ',' << len<centimeter> << std::endl;
     
    const char* str = "asdf";
     
    auto oGetStr = [str]()->const char* {return str;};
    //const char* p = s_str<decltype(oGetStr)>; // error
     
    auto o2and2 = []()->int{return 2 + 2;};
    //int n = x<decltype(o2and2)>; // error
     
    return 0;
}



Может уже появился какой способ собрать указатели на локальные строки в глобальных переменных ? (Например, шаблон параметризованный локальной строкой...)
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.