История изменений
Исправление dissident, (текущая версия) :
В принципе могли (с правильным синтаксисом)
Как-то так?..
#include <iostream>
using namespace std;
template<typename T>
class my_basic_string
{
public:
my_basic_string(const char* c_str) { /* do nothing */ }
};
template<typename T>
class MyTraits
{
public:
static void keke() { /* Do nothing */ }
};
template<typename T>
class MyAlloc
{
public:
static void keke() { /* Do nothing */ }
};
template<typename CharT>
class MyLocale
{
public:
template<
class AMyTraits = MyTraits<CharT>,
class AMyAlloc = MyAlloc<CharT>
>
bool operator()( const my_basic_string<CharT>& s1,
const my_basic_string<CharT>& s2) const
{
AMyTraits::keke();
AMyAlloc::keke();
return true;
}
};
int main(int argc, char* argv[])
{
cout << MyLocale<char>()("kekeke", "kekeke") << endl;
}
Пошел утоться в унитазе и/или читать SICP.
Исправление dissident, :
В принципе могли (с правильным синтаксисом) Как-то так?..
#include <iostream>
using namespace std;
template<typename T>
class my_basic_string
{
public:
my_basic_string(const char* c_str) { /* do nothing */ }
};
template<typename T>
class MyTraits
{
public:
static void keke() { /* Do nothing */ }
};
template<typename T>
class MyAlloc
{
public:
static void keke() { /* Do nothing */ }
};
template<typename CharT>
class MyLocale
{
public:
template<
class AMyTraits = MyTraits<CharT>,
class AMyAlloc = MyAlloc<CharT>
>
bool operator()( const my_basic_string<CharT>& s1,
const my_basic_string<CharT>& s2) const
{
AMyTraits::keke();
AMyAlloc::keke();
return true;
}
};
int main(int argc, char* argv[])
{
cout << MyLocale<char>()("kekeke", "kekeke") << endl;
}
Пошел утоться в унитазе и/или читать SICP.
Исправление dissident, :
В принципе могли (с правильным синтаксисом) Как-то так?..
#include <iostream>
using namespace std;
template<typename T>
class my_basic_string
{
public:
my_basic_string(const char* c_str)
{ /* do nothing */ }
};
template<typename T>
class MyTraits
{
public:
static void keke() { /* Do nothing */ }
};
template<typename T>
class MyAlloc
{
public:
static void keke() { /* Do nothing */ }
};
template<typename CharT>
class MyLocale
{
public:
template<
class AMyTraits = MyTraits<CharT>,
class AMyAlloc = MyAlloc<CharT>
>
bool operator()( const my_basic_string<CharT>& s1,
const my_basic_string<CharT>& s2) const
{
AMyTraits::keke();
AMyAlloc::keke();
return true;
}
};
int main(int argc, char* argv[])
{
cout << MyLocale<char>()("kekeke", "kekeke") << endl;
}
Пошел утоться в унитазе и/или читать SICP.
Исходная версия dissident, :
В принципе могли (с правильным синтаксисом) Как-то так?..
#include <iostream>
using namespace std;
template<typename T>
class my_basic_string
{
public:
my_basic_string(const char* c_str)
{ /* do nothing */ }
};
template<typename T>
class MyTraits
{
};
template<typename T>
class MyAlloc
{
};
template<typename CharT>
class MyLocale
{
public:
template<
class AMyTraits = MyTraits<CharT>,
class AMyAlloc = MyAlloc<CharT>
>
bool operator()( const my_basic_string<CharT>& s1,
const my_basic_string<CharT>& s2) const
{
return true;
}
};
int main(int argc, char* argv[])
{
cout << MyLocale<char>()("kekeke", "kekeke") << endl;
}
Пошел утоться в унитазе и/или читать SICP.