ハイライトできないがまぁまぁ見れるようになった。
・'<'と'>'と空白を数値文字参照に変換
・以下のように置換
行頭→<tt>
行末→</tt>
改行→<br>
#include <iostream>
template<int N> struct int_ {};
template<bool B> struct bool_ {};
struct continue_{};
struct end_{};
template <bool Cond>
auto is_end(bool_<Cond>)
-> typename std::conditional<Cond, end_, continue_>::type;
template <typename T, int N>
auto add_pointers_impl(T, int_<N>, continue_)
-> decltype(
add_pointers_impl(
std::declval<T*>(),
int_<N - 1>(),
std::declval<
decltype(
is_end(
bool_<N-1 == 0>()
)
)
>()
)
);
template <typename T, int N>
auto add_pointers_impl(T, int_<N>, end_)
-> T;
template <typename T, int N>
auto add_pointers(T, int_<N>)
-> decltype(
add_pointers_impl(
std::declval<T>(),
int_<N>(),
std::declval<
decltype(
is_end(
bool_<N == 0>()
)
)
>()
)
);
int main()
{
typedef decltype(add_pointers(std::declval<int>(), int_<3>())) result;
result pppi;
std::cout << typeid(pppi).name() << std::endl;
int*** pppi2;
std::cout << typeid(pppi2).name() << std::endl;
return 0;
}
縮小表示されないから画面を専有して死ぬほど迷惑だな。これは失礼しました。