Несколько разных вопросов
От: Аноним  
Дата: 27.11.05 21:36
Оценка:
У меня есть класс с упрощенно следующим содержанием:

class SomeClass {
    __int64 longVar;
    public:
        SomeClass();
        SomeClass(char *);
        SomeClass(int);
}
SomeClass::SomeClass() {
    // ...
}
SomeClass::SomeClass(char * str)  {
    SomeClass();
    // делаем что-то
}

SomeClass::SomeClass(int a)  {
    SomeClass();
    // делаем то же, что и в SomeClass(char *)
}


Все работает, но хотелось бы эту конструкцию упростить по возможности. Первое -- вместо вызова SomeClass() написать this() -- но не работает по непонятным причинам. Во-вторых, хочется сократить два перегруженных конструктора SomeClass(char *) и SomeClass(int), реализация которых абсолютно совпадает, в один. Это можно сделать с помощью темплейтов, но чтение мануала на msdn мало что дало в понимании, КАК ИМЕННО применить темплейты в моем случае, то есть ограничить список типов шаблона только char * и int.

И еще вопрос следующего характера. В классе определено свойство longVar с типом __int64, но дело в том, что этот тип поддерживают не все компиляторы. Как сделать какую-нить хитрую штуку (препроцессорные директивы может какие), которая бы проверяла, что если этот тип поддерживается компилятором, значит компилируем, если же нет -- то значит заменяем его на long int?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.