Использование конкретного класса в методе куда приходит Шаблон класса

У меня есть интерфейс:

public interface IModelSort<T> where T : class     {         IEnumerable<T> GetModelSort<K>(IEnumerable<T> model, Func<T, K> predSort, bool asc);     } 

Класс наследованный от этого интефрейса:

public IEnumerable<T> GetModelSort<K>(IEnumerable<T> model, Func<T, K> predSort, bool asc)         {             return asc ? model.OrderBy(predSort) : model.OrderByDescending(predSort);         } 

И есть метод который обращается к этому классу.

public IEnumerable<T> GetSortedModel<T, K>(IEnumerable<T> model, Func<T, K> predSort, bool asc) where T : class         {             return new ModelSort<T>().GetModelSort(model, predSort, asc);         } 

И я не хочу передавать сюда уже готовый предикат, я хочу его тут собирать, что бы освободить от лишней логики контроллер и сделать эту логику тут. Но так как этому методу не известен класс который к нему придёт он не знает выражения

predSort = i => i.SomeValue; 

Подскажите как нибудь можно реализовать сбор предикатов не в контроллере а в этом методе или где нибудь рядом с ним.

Как лучше всего организовать структуру C++ проекта, использующего CMake и юнит-тесты?

Как лучше всего организовать структуру C++ проекта, использующего CMake и юнит-тесты?

Искал примеры в интернете – в основном все тесты пихают в отдельную директорию test. Для каждого XXX.cpp файла проекта создаётся test_XXX.cpp с тестом функциональности этих файлов. Хороший ли это подход, ведь происходит дублирование по сути? Как организовать это в CMake? Если делать в лоб (1 executable для приложения, 1 – для тестов), то компиляция будет в 2 раза дольше… Планируется писать юнит-тесты для функционала и производительности. Надо ли как-то обособлять их или в одном файле ок?

Проблема с отображением текста на IPhone

Всем привет!

Проблема с отображением текста в модулях на веб странице. Все работает на всех компъютерах кроме Apple IPhone. Текст в картинках, в нижней части страницы не отображется. Как исправитъ код?

.hover03 { height: 100%; width: 100%;  -webkit-transition: all 1s ease; -moz-transition: all 1s ease; -o-transition: all 1s ease; -ms-transition: all 1s ease; transition: all 1s ease;  } .hover03:hover { transform: scale(1.2); transform-origin: center; } .hover02 .sppb-cta-title{ color: transparent !important; } .hover03:hover .sppb-cta-title{ color: #ffffff !important; animation:fadeIn ease-in 1; animation-fill-mode:forwards; animation-duration:1s; background-color: rgba(0, 0, 0, 0.5); } .hover02 .sppb-btn-default{ color: transparent !important; background-color: transparent !important; border: transparent !important; font-size: 14px !important; } .hover03:hover .sppb-btn-default{ color: #fff !important; background-color: #620376 !important; opacity:0; animation:fadeIn ease-in 1; animation-fill-mode:forwards; animation-duration:1s; font-size: 14px !important; } .hover03:hover .sppb-btn-default:hover{ color: #fff !important; background-color: #D46B0A !important; font-size: 14x !important; } 

Ссылка на сайт

Где найти свежую документацию по gnu c?

По запросу в Гугле – выдает страницу https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html в которой ничего не говориться о c 11, на официальном сайте я ничего подходящего не нашел.

Где можно найти актуальный мануал по gnu c 11?

Спасибо.

Построить дерево из строк

Подскажите, пожалуйста, как построить дерево из строк? Имеется массив:

$  arr = [   'FOLDER1',   'FOLDER2',    'FOLDER2|FOLDER3',   'FOLDER2|FOLDER4',   'FOLDER2|FOLDER4|FOLDER5',   'FOLDER6|FOLDER7',    'FOLDER8',   'FOLDER8|FOLDER9' ]; 

Нужно получить массив вида:

$  output = [     [         "short" => "FOLDER1",         "full" => "FOLDER1",         "sub_folders" => []     ],     [         "short" => "FOLDER2",         "full" => "FOLDER2",         "sub_folders" => [             [                 "short" => "FOLDER3",                 "full" => "FOLDER2|FOLDER3",                 "sub_folders" => []             ],             [                 "short" => "FOLDER4",                 "full" => "FOLDER2|FOLDER4",                 "sub_folders" => [                     [                         "short" => "FOLDER5",                         "full" => "FOLDER2|FOLDER4|FOLDER5",                         "sub_folders" => []                     ]                 ]             ]         ]     ],     [         "short" => "FOLDER6",         "full" => "FOLDER6",         "sub_folders" => [             [                 "short" => "FOLDER7",                 "full" => "FOLDER6|FOLDER7",                 "sub_folders" => []             ]         ]     ],     [         "short" => "FOLDER8",         "full" => "FOLDER8",         "sub_folders" => [             [                 "short" => "FOLDER9",                 "full" => "FOLDER8|FOLDER9",                 "sub_folders" => []             ]         ]     ] ]; 

Обращение к строке таблицы mysql по url

Насколько я понимаю, есть страница, допустим vk.com/id в которой имеется код (полюбому не PHP), html разметка и т.п.
И когда в браузере ссылка становится vk.com/id1, то в разметку подгружаются данные с строки, номер которой равен id1.

Можете подсказать как такое реализовать с помощью PHP и MySql?

P.s. Желательно статейку

Не срабатывает последнее условие

Указываем число n. В диапазоне от 1 до n выводим каждый элемент, но только стрингой. Если число кратное 3 – заменяем вывод на “Fizz”, если кратно 5 – заменяем вывод на “Buzz”, а если кратно и 3 и 5 – на “FizzBuzz”

В моей реализации первых два условия выполняется, третье не выполняется никогда

static IList<string> FizzBuzz(int n)     {         List<string> result = new List<string>();         for(int i =1; i<=n; i++)         {             if (i % 3 == 0)                 result.Add("Fizz");             else if (i % 5 == 0)                 result.Add("Buzz");             else if (i % 15 == 0)                 result.Add("FizzBuzz");             else                 result.Add(i.ToString());         }         foreach (var item in result)             Console.WriteLine(item);         return result;      } 

Ожидаемый результат: n = 15, Вывод: [ “1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”, “7”, “8”, “Fizz”, “Buzz”, “11”, “Fizz”, “13”, “14”, “FizzBuzz” ]

А по факту имеем: “1”, “2”, “Fizz”, “4”, “Buzz”, “Fizz”, “7”, “8”, “Fizz”, “Buzz”, “11”, “Fizz”, “13”, “14”, “Fizz”

Как пофиксить, что бы проверка на кратность на 3 не прерывала проверку на кратность на 3 и 5? Есть какой либо более шустрый способ решения этой же задачи?

Как реализовать подсветку слов в результатах поиска?

Результаты — $ result, вводимое в поле слово — $ termin. Вот этот код не работает, ничего не подсвечивается:

$  result = preg_replace('/('.$  termin.')/i', "<b>$  1</b>", $  result); 

Подобные примеры с регулярками из сети тоже не работают. Видимо, где-то с моей стороны ошибка при подстановке переменных. В чём может быть проблема?