์ค๋ฅ๋๋ ๋ถ๋ถ์ ๋ด๊ฐ ์ ์ ์ด๋์ ๋ค์ ๊ธ ์ฐ๋ ค๊ณ , ๋ด ์ค ์ฌ๋์ด ์์์ง ๋ชจ๋ฅด์ง๋ง ์ผ๋จ ์ฌ๋ ค๋ด.
์๋๊ฑฐ๋ ๋ด๊ฐ ์ง๊ธ ๋ง๋๋ ์ฝ๋์ ์๋ณธ์, ์ฆ ์ด๊ฑธ ๋ฒ ๊ปด๋ค๊ฐ UFUNCTION ๋ฌ์์ ์ธ๋ฆฌ์ผ ํจ์๋ก ์ธ ์๊ฐ์ด์์.
#includeย <random>
#includeย <ctime>
#includeย <iostream>
#includeย <functional>
usingย namespaceย std;
intย main()
{
ย ย ย ย mt19937ย engine((unsignedย int)time(NULL));ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย //ย MT19937ย ๋์ย ์์ง
ย ย ย ย uniform_int_distribution<int>ย distribution(0,ย 100);ย ย ย ย ย // ์์ฑ ๋ฒ์
ย ย ย ย autoย generatorย =ย bind(distribution,ย engine);
ย ย //ย 0~100 ๋ฒ์์ ๋์ 100๊ฐ ์์ฑํ์ฌ ์ถ๋ ฅ
ย ย ย ย forย (intย iย =ย 0;ย iย <ย 100;ย ++i)
ย ย ย ย ย ย ย ย coutย <<ย generator()ย <<ย endl;
}
๊ทธ๋ฆฌ๊ณ ๋ค์ ์๋๊ฐย ๋ด๊ฐ ์์๊ฑฐ์์ ์ฌ๋ฌ๊ฐ์ง ๋ถ์๋ค ๋บ๋ค ํ ์๋ฌ ๋ฉ์ด๋ฆฌ์
์ค๋ฅ๋ ํ์ ์ ๋ณด์ด๋ผ๊ณ ๋นจ๊ฐํ์ผ๋ก ์ฃผ์ ๋ฌ์๋จ์
#include <random>
#include <ctime>
#include <iostream>
#include <functional>
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
using namespace std;
UCLASS()
class CHARON_API UMersenneTwisterBP : public UBlueprintFunctionLibraryย ย ย // ์๋ฌ C2143 : ๊ธ์๊ฐ ๊นจ์ ธ์ ์ ์๋ณด์ด๋๋ฐ ';' ๋ <class-head>๋ง ๋ณด์, ์๋ฌ C4400 : ๊ธ์๊ฐ ๊นจ์ ธ์ ์๋ณด์
{
ย ย GENERATED_BODY()ย ย ย ย ย ย //์๋ฌ E007 : ์ด ์ ์ธ์๋ ์คํ ๋ฆฌ์ง ํด๋์ค ๋๋ ํ์ ์ง์ ์๊ฐ ์์ต๋๋ค. ์๋ฌ C4430
public:
ย ย UFUNCTION(blueprintcallable, category = "Mersenne Twister")
ย ย ย ย static int32 MersenneTwister(UPARAM(displayname = "max")int32 max, UPARAM(displayname = "min")int32 min);
ย ย static int main()
ย ย {
ย ย ย ย ย
ย ย ย ย mt19937 engine((unsigned int)time(NULL));ย ย ย ย ย ย ย ย ย ย // MT19937 ๋์ ์์ง
ย ย ย ย uniform_int_distribution<int32> distribution(int32 min, int32 max);ย ย ย ย // ์์ฑ ๋ฒ์
ย ย ย ย auto generator = bind(distribution, engine);
ย ย ย ย return generator();ย ย ย ย ย // ์๋ฌย E0304 :ย ์ธ์ ๋ชฉ๋ก์ด ์ผ์นํ๋ ์ค๋ฒ๋ก๋๋ ํจ์ "std::_Binder<_Ret, _Fx, _Types...>::operator() [๋์ _Ret=std::_Unforced, _Fx=std::uniform_int_distribution<int32> (&)(int32 min, int32 max), _Types=<std::mt19937 &>]"์ ์ธ์คํด์ค๊ฐ ์์ต๋๋ค.
ย ย }
}ย ย ย ย ย ย ย // ์๋ฌ E0065 : ';' ๊ฐ ํ์ํฉ๋๋ค.
๋๋จธ์ง๋ย ์๋ฌ C1004, ์๋ฌ MSB3075๊ฐ ๋์๋๋ฐ ๋ ๋ค ์ด๋คํ์ ํ์ํด์ผ ๋ ์ง ๋ชฐ๋ผ์ ๊ฑ ๋์ ์....
generated.h ๊ฐ ์๊ณ ๋ง์ง๋ง์ ์ธ์ด์ฝ๋ก ์๊ณ ์ main์ ์ค๋ง ์ง์ง ์ ๋ ๊ฒ ๋ค์ด๊ฐ ์๋๊ฑฐ์ผ? ๊ทธ๋ฆฌ๊ณ ์์ดํ ๋ช๊ฐ ์๋๋ฉด ๋๋ค ๋๋ฒ๋ณด๋ค ๋๋ค ์ ํ ์ฆ ์์๋ฅผ ์๋๊ฒ ๋ ์ฝ๊ณ ํธํ๋ค๋๊น. ์ฝ๊ฒ ์ค๋ช ํ๋ฉด ์์ ๋ชฉ๋ก ๋๋ค ์๊ธฐ ํ ์์ฐจ์ ์ผ๋ก ์ฌ์ํ๋ฉด ๋ ธ๋๊ฐ ๋๋คํ๊ฒ ์ฌ์๋๋๊ฒ ์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ฒฐ๊ตญ์ ์ ๋ถ ํ๋ฒ์ฉ๋ง ์ฌ์๋จ.
๋ต๋ณ ๊ณ ๋ง์! generated.h ๋ ์์ธ์ง ์ ์ ์ฐจ๋ ค๋ณด๋ ์๋ค..... main์ ์ฌ์ค ์ ๊ฒ ์ด๋ค ์๋ฏธ์ธ์ง ๋ชฐ๋ผ์ ๊ทธ๋ฅ ๋ฃ์๋ค ๋บ๋ค ํ์์. ์ธ๋ฏธ์ฝ๋ก ์ ๋ค๋ฅธ ์์ ๋ค ๋ณด๋๊น ๋ง์ง๋ง ๊ตฌ๋ฌธ ๋ค์๋ง ๋ค์ด๊ฐ๋๋ฐ ๊ทธ๋ ๋ค๋ฉด ์ ๊ธฐ์ ๋ ๋ฃ์ ์๋ฏธ๊ฐ ์๋ ์๊ฐํด์..... ์์ดํ ์ซ์๋ 50๊ฐ ์ด์์ ํ๋ฅ ๋ ์ ๊ฐ๊ฐ์ด๋ผ ์ ํ์ ์ฐ๊ธฐ๋ ์ด๋ฌ์ธ๊ฒ ๊ฐ์