История изменений
Исправление rumgot, (текущая версия) :
Тут нужно понимать, что при компиляции main.cpp
компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции, там тоже можно использовать возвращаемый тип как auto
и при этом можно будет включать заголовочный файл в разные места. И шаблонная функция может быть не inline
(тут уж как компилятор решит).
Ну т.е. сделай так:
#ifndef TEST_H
#define TEST_H
template <typename T = int> auto test() { return 5; }
#endif // TEST_H
И потом используй где хочешь:
#include "test.h"
int main() {
test();
}
Исправление rumgot, :
Тут нужно понимать, что при компиляции main.cpp
компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции, там тоже можно использовать возвращаемый тип как auto
и при этом можно будет включать заголовочный файл в разные места. И шаблонная функция может быть не inline
.
Ну т.е. сделай так:
#ifndef TEST_H
#define TEST_H
template <typename T = int> auto test() { return 5; }
#endif // TEST_H
И потом используй где хочешь:
#include "test.h"
int main() {
test();
}
Исправление rumgot, :
Тут нужно понимать, что при компиляции main.cpp
не компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции, там тоже можно использовать возвращаемый тип как auto
и при этом можно будет включать заголовочный файл в разные места. И шаблонная функция может быть не inline
.
Ну т.е. сделай так:
#ifndef TEST_H
#define TEST_H
template <typename T = int> auto test() { return 5; }
#endif // TEST_H
И потом используй где хочешь:
#include "test.h"
int main() {
test();
}
Исправление rumgot, :
Тут нужно понимать, что при компиляции main.cpp
не компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции, там тоже можно использовать возвращаемый тип как auto
и при этом можно будет включать заголовочный файл в разные места. И шаблонная функция может быть не inline
.
Исправление rumgot, :
Тут нужно понимать, что при компиляции main.cpp
не компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции, там тоже можно использовать возвращаемый тип как auto
и при этом можно будет включать заголовочный файл в разные места.
Исправление rumgot, :
Тут нужно понимать, что при компиляции main.cpp
не компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной программы нельзя будет включить этот заголовочный файл куда-то еще. Думаю в твоем случае лучше использовать шаблон функции.
Исходная версия rumgot, :
Тут нужно понимать, что при компиляции main.cpp
не компилятор не заглядывает в .cpp
файл в котором находится определение твоей auto-функции. Компилятор смотрит только в заголовочный файл. Ты можешь поместить определение функции за пределами класса, но в заголовочном файле, но тогда в пределах одной програмы нельзя будет включить этот заголовочный файл куда-то еще.