Я могу создать:
constexpr auto pair = std::make_pair(1, 2);
Но как передать её в функцию? Следующие способы не работают:
template<std::pair<int, int> pair>
void foo() {
constexpr int a = pair.first;
}
void foo(const std::pair<int, int>& pair) {
constexpr int a = pair.first;
}
Это вас не устроит?
constexpr auto p = std::make_pair(1, 2);
constexpr void foo(std::pair<int, int> pr)
{
int a = pr.first;
}
constexpr void poo(std::pair<int, int> pr)
{
constexpr int a = p.first;
}
int main(int argc, const char * argv[])
{
foo(p);
poo(p);
}
Просто смотрите - вы хотите на уровне компиляции определить значение локальной переменной a
, которая в общем случае определяется аргументом функции времени выполнения. Если вы ее хотите определить через глобальную consexpt
переменную - это дело другое...
Update
Пару вариаций:
constexpr auto p = std::make_pair(1, 2);
constexpr auto foo(const std::pair<int, int>& pr)
{
int a = pr.first;
return a;
}
constexpr auto goo(std::pair<int, int> pr)
{
int a = pr.first;
return a;
}
constexpr auto x = foo(p);
constexpr auto y = goo(p);
Update2
Раз нужен именно шаблон... - https://ideone.com/lgf5Cn (правда, VC++, даже 2017, это еще не научился делать).
constexpr auto p = std::make_pair(1, 2);
template<const std::pair<int, int>& pr>
void zoo()
{
constexpr int a = pr.first;
}
int main(int argc, const char * argv[])
{
zoo<p>();
}
Какие еще будут пожелания?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Прошу вас объяснить или же указать на источник где можно подробно прочитать способ использования одной библиотеки Arduino в другойВ частности,...
Здравствуйте, необходимо реализовать передачу файла на comportОбъясните, пожалуйста, если компорт ведет дело с байтами, то задача "Передать...