export или extern ?
// out.h:
template<class T> void out(const T& t) ;
// out.c:
#include<iostream>
#include "out.h"
export template<class T> void out(const T& t) { std: :cerr << t; }
// user1.c:
#include "out.h"
// use out()
// user2.c:
#include "out.h"
// use out()
Только в ССях нет export!!! Как сделать правильно?
Я в ступоре!
По стандарту 98 года в языке есть экспортируемые шаблоны. Но до сих пор ни в одном компиляторе они не реализованы - ключевое слово export или игнорируется, или вызывает ошибку при компиляции. Выход из ситуации только один - поместить определение шаблона целиком в заголовочном файле. А extern к шаблонам вообще не применим.
Цитата:
Originally posted by srd
По стандарту 98 года в языке есть экспортируемые шаблоны. Но до сих пор ни в одном компиляторе они не реализованы - ключевое слово export или игнорируется, или вызывает ошибку при компиляции. Выход из ситуации только один - поместить определение шаблона целиком в заголовочном файле. А extern к шаблонам вообще не применим.
По стандарту 98 года в языке есть экспортируемые шаблоны. Но до сих пор ни в одном компиляторе они не реализованы - ключевое слово export или игнорируется, или вызывает ошибку при компиляции. Выход из ситуации только один - поместить определение шаблона целиком в заголовочном файле. А extern к шаблонам вообще не применим.
srd
Спасибо! А то примеры есть, но толком нигде ничего не сказано!
Цитата:
Originally posted by srd
По стандарту 98 года в языке есть экспортируемые шаблоны. Но до сих пор ни в одном компиляторе они не реализованы - ключевое слово export или игнорируется, или вызывает ошибку при компиляции.
По стандарту 98 года в языке есть экспортируемые шаблоны. Но до сих пор ни в одном компиляторе они не реализованы - ключевое слово export или игнорируется, или вызывает ошибку при компиляции.
Есть все же такие компиляторы. Например, Сomeau.
http://www.comeaucomputing.com/4.0/docs/userman/export.html